给定这样的字符串:
var filterOptions = "First Bank";
还有一个具有 Grantee 列和 Grantor 列的表,如何使用 EF 创建一个查询,该查询将生成以下 where 子句:
... where (Grantor like '%First%' and Grantor like '%Bank%') or (Grantee like '%First%' and Grantee like '%Bank%')
请记住,filterOptions 是一个传入的参数,因此它可以很容易地包含 3 或 4 个单词,而不仅仅是两个……在这种情况下,每列都需要额外的 like 子句。
如果不是因为 OR 部分,我会做以下事情(这将有助于更好地了解我想要完成的工作。
foreach(var word in filterOptions)
{
var text = "%" + word + "%";
query = query.Where(r => SqlMethods.Like(r.Grantee,text));
}
就像我说的那样,它试图将 OR 部分与另一列相加,这让我陷入了循环。