动态库(System.Linq.Dynamic)如何支持LIKE运算符?

Kia*_*ash 13 c# linq asp.net dynamic-linq

任何机构都可以告诉我如何使用microsoft Dynamic Expression API管理LIKE运算符?

我需要在动态查询中添加多个Like Expression

/*
var query =
db.Customers.
Where("CityName Like @0 or CityName Like @1", "London", "USA")
*/
var query =
db.Customers.
Where("CityName Like @0 or CityName Like @1%", "London", "USA")
Run Code Online (Sandbox Code Playgroud)

谢谢堆

Jai*_*ime 24

尝试使用简单的"CityName.Contains(@ 1)",这将转换为正确的lambda,因为它是一个可访问类型的方法调用.

就像是:

var query =
db.Customers.
Where("CityName.Contains(@0) or CityName.Contains(@1)", "London", "USA")
Run Code Online (Sandbox Code Playgroud)

刚刚使用动态库附带的示例应用程序对其进行了测试,并生成了LIKE运算符


Arn*_*sen 5

您可以使用.StartsWith(), .EndsWith()and.Contains()分别生成带有尾随、前导和周围通配符的 LIKE SQL。不知道生成带有嵌入式通配符的语句的方法。


小智 5

这将允许LIKE整数字段上的运算符:

.Where(searchField + ".ToString().Contains(@0)", searchString);
Run Code Online (Sandbox Code Playgroud)