相关疑难解决方法(0)

LINQ to SQL中的多个Deferred WHERE子句表达式

也许是一个简单的问题,我试图从一个表中获取结果,其中Name列包含所有搜索项的数组.我正在创建一个查询并循环遍历我的搜索字符串,每次都分配query = query.Where(...);. 似乎只使用了最后一个术语,我猜想因为我每次都试图限制同一个字段.如果我叫.ToArray().AsQueryable已()在每次迭代我能得到我要找的cumlative restrinction行为,但它有一个简单的方法来做到这一点只能通过延迟执行运营商?

谢谢!

linq where-clause linq-to-sql

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

Linq2SQL"或/和"运算符(ANDed/ORed条件)

假设我们需要应用几个条件来从一个名为"Things"的表中进行选择(未知计数和性质)

如果条件已知,我们可以写

db.Things.Where(t=>foo1 && foo2 || foo3);
Run Code Online (Sandbox Code Playgroud)

但是如果我们必须以编程方式构建Where条件,我可以想象我们如何应用ANDed条件

IQuerable DesiredThings = db.Things.AsQuerable();
foreach (Condition c in AndedConditions)
DesiredThings = DesiredThings.Where(t => GenerateCondition(c,t));
Run Code Online (Sandbox Code Playgroud)

ORed条件怎么样?注意:我们不想执行union,unique或任何其他代价高昂的操作,我们希望生成一个查询,好像我们将它写成ad-hock

提前致谢.


加成:

PredicateBuilder:动态编写表达式谓词

.net c# query-optimization expression-trees linq-to-sql

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