代码之家  ›  专栏  ›  技术社区  ›  Geodesic

LINQ SELECT语句中的动态变量

  •  0
  • Geodesic  · 技术社区  · 15 年前

    我有一个列表框,根据从另一个列表框中选择的表,该列表框由某些值动态填充。一旦选择了一个值,它就会被绘制成日期和时间范围。由于我对LINQ一无所知:取决于所选的值,我需要创建的LINQ to SQL语句来从数据库中获取数据是不同的,因为我不能对匿名类型使用索引。

    result = From t In db.APS _
             Where t.DateTime >= startDate And _
             t.DateTime <= finishDate And t.Weight = weight _
             Select t.DateTime, t.TotalConcentration
    

    如果我的列表框值为“总浓度”,则应选择T.total concentration,但如果它是其他值,如“温度”或“流量”(连接到适当的数据库列),则此方法显然不起作用。我需要能够动态地从匿名类型列表中选择一个特定的列,或者使用我不知道的其他方法。我使用的是VB,但如果您有C语言的解决方案,我们也会很感激。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Robert Harvey    15 年前

    看一看 Dynamic Linq . 动态LINQ允许您将LINQ语句中的字段和表名指定为字符串,因此您应该能够从列表框中向其传递一个字符串,以指定要指定的字段。 Select .

    http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx