我有一个简单的查询:
dim res = (From x In db.INVENTORies
Where x.INVENTORY_ACTIVATION_DATE IsNot Nothing).count
我需要为14个不同的日期字段运行这个,那么在INVENTORY_ACTIVATION_date可以是变量/动态的情况下,我该如何运行这个?
类似于:
函数GetCount(aField为字符串(为整数
return (From x In db.INVENTORies
Where x.**<Use aField here>** IsNot Nothing).count
端函数
提前谢谢。Steve
我已经尝试过DynamicLinq和PredicateBuilder,但没有适合我的场景的好例子。
C#评估表达式
免责声明:我是C#Eval Expression 项目的所有者
该库不是免费的,但您可以使用与C#相同的语法执行几乎任何动态LINQ。
因此它可以在VB.NET应用程序中使用,但您需要对动态部分使用C#语法
return context.Customers.WhereDynamic("x => x.AnyField != null && x.AnyField2 != null").count
正如您所看到的,您只需要创建一个字符串来动态执行。
LINQ动态
https://www.nuget.org/packages/System.Linq.Dynamic.Core/
LINQ Dynamic也可以实现同样的功能。你可以在这里找到一些例子
您不必使用PredicateBuilder,只需动态创建字符串即可。
经过多次追踪和错误,我终于完成了这项工作。我最终使用了System.Linq.Dynamic.Core.