Linq到SQL的动态Where子句



我有一个简单的查询:

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.

最新更新