使用OR运算子查询时需要多个条件

时间:2019-01-09 18:31:37

标签: c# sql linq entity-framework-core

我需要添加多个where条件,或者在其中添加一个操作符,其中一个where条件必须检查db列是否提供了列表中的任何项目。请考虑以下查询

var res= from table1 in context.table1
         join table2 in context.table2
         on table1.id equals table2.id
         where table1.name=="res1" || table1.description=="desc"
         || table1.name.any(res=>FreeText.Contains(res))
         select table1

此查询使编译器多次运行查询,但没有得到所需的结果。我的最终目标是实现以下sql查询

select * from table1 join table2 on table1.id ==table2.id 
  where table1.name=="res1" || table1.description=="desc" || table1.name like "%item1%" ||table1.name like "%item2% ......"

应当根据列表中的项目动态添加like语句。

1 个答案:

答案 0 :(得分:-1)

尝试一下...

var res= from table1 in context.table1
         join table2 in context.table2
         on table1.id equals table2.id
         where table1.name=="res1" || table1.description=="desc"
         || FreeText.Any(p => table1.name.Contains(p, StringComparison.InvariantCultureIgnoreCase))
         select table1