我想在LINQ中翻译这个查询......如果我们在纯SQL中执行它,但是在动态创建的LINQ查询中(构建基于用户输入的搜索查询),这是非常容易的,它是一个全新的故事。在LINQ中翻译此查询? (列表相似)
SELECT * FROM MyTable
WHERE 1=1
AND Column2 IN (1,2,3)
AND (Column1 LIKE '%a%' OR Column1 LIKE '%b%')
我们试图建立这样我们试图这样说:
if(myOjb.Column2Collection != null)
query = query.where(f => f.Column2.Contains(myOjb.Column2Collection));
if(myObj.Column1Collection != null)
{
// tough part here ?
//query = query.Where(); ...
}
那么,什么是最好的形式给出这个正常?
注意,我知道SqlMethod.Like的,尽管我不明白的方式来实现在这里吧...
'WHERE 1 = 1`的用途是什么?这不仅仅意味着“真实”,并且不会有所作为? – Marcus 2011-02-04 14:49:20
@G_M - 通常这是在构建动态SQL时完成的,因此您不需要继续检查现有的where子句。 – Oded 2011-02-04 14:50:17
是你的问题如何动态地处理OR? – JohnOpincar 2011-02-04 15:28:21