Pau*_*aul 2 linq where-clause linq-to-sql
也许是一个简单的问题,我试图从一个表中获取结果,其中Name列包含所有搜索项的数组.我正在创建一个查询并循环遍历我的搜索字符串,每次都分配query = query.Where(...);. 似乎只使用了最后一个术语,我猜想因为我每次都试图限制同一个字段.如果我叫.ToArray().AsQueryable已()在每次迭代我能得到我要找的cumlative restrinction行为,但它有一个简单的方法来做到这一点只能通过延迟执行运营商?
谢谢!
如果你做的事情如下:
foreach (int foo in myFooArray)
{
query = query.where(x => x.foo == foo);
}
Run Code Online (Sandbox Code Playgroud)
...然后它将只使用最后一个,因为每个条件将包含对'foo'循环变量的引用.
如果这是您正在做的,请将其更改为:
foreach (int foo in myFooArray)
{
int localFoo = foo;
query = query.where(x => x.foo == localFoo);
}
Run Code Online (Sandbox Code Playgroud)
......一切都应该好了.
如果这不是正在发生的事情,请提供您正在做的代码示例...