我正在使用 Linq To Entities 来启动我的应用程序,我想创建一个相当复杂的搜索查询......看看我想要的是:
当用户输入像“Washington Boston”这样的字符串时,我将根据“”(空格,在本例中为 2 个字符串)的数量将其分成 N 个字符串,然后在我的 Counties 表中搜索华盛顿和波士顿
如果这是一个“静态”查询,我会这样写:where county.Name.Contains("Washington") || county.Name.Contains("Boston")
但我不知道用户将输入多少个城市(或空白)...
在经典的纯 TSQL 环境中,我将在运行时编译查询并使用命令 Exec... 所以我的问题是:如何动态生成 LINQ 到实体查询?
请注意 .Where() 不是基于委托的扩展方法......它不会在后端转换为 TSQL,意思是在后端from e in context.Counties.Where(c => c.Name.Contains("boston"))
转换为SELECT ID,NAME FROM COUNTIES