相关疑难解决方法(0)

LINQ:实体字符串字段包含任何字符串数组

我想获得Product实体的集合,其中product.Description属性包含字符串数组中的任何单词.

它看起来像这样(结果将是任何在描述文本中有"mustard OR"泡菜"OR"relish"的产品):

Dim products As List(Of ProductEntity) = New ProductRepository().AllProducts

Dim search As String() = {"mustard", "pickles", "relish"}

Dim result = From p In products _
     Where p.Description.Contains(search) _
     Select p

Return result.ToList
Run Code Online (Sandbox Code Playgroud)

我已经看过这个类似的问题,但无法让它发挥作用.

linq arrays string contains

37
推荐指数
3
解决办法
5万
查看次数

获取 IQueryable<T>,其中 T 的任何字段包含给定字符串

我使用的 EF5 有一个由字符串、日期、可为空日期和整数组成的 20 个大型属性实体。是否可以使用 Linq 对每个字段执行包含操作。

我不想为每个字段构建 linq 语句

results = list.Where(house => house.Date1.ToString().Contains(search)||
                              house.Address1.Contains(search)||
                              house.Address2.Contains(search)||
                              house.Address3.Contains(search)||
                              .........................)
Run Code Online (Sandbox Code Playgroud)

我想我想将所有属性转换为字符串(如有必要),然后对每个属性进行包含?理想情况下,这将发生在数据库级别。

我想我无法连接它们,因为如果两个字段的结束和开始创建了搜索文本,可能会导致错误匹配?有任何想法吗?

更新

我目前是这个LINQ string[] 针对多个字段的第二个答案,使用 LinqKit AsExpandable 和 EF 将函数转换为基于类型的字符串。但是我似乎找不到将 DateTime 转换为字符串的 SqlFunction

c# linq entity-framework entity-framework-5

1
推荐指数
1
解决办法
2463
查看次数