多DEFERED WHERE子句的表达式中的LINQ to SQL(Multiple Defered

2019-09-23 20:32发布

也许一个简单的问题,我想从那里名称列中包含所有搜索字词的数组的表得到一个结果。 我创建一个查询,并通过我的搜索字符串循环,每次赋予查询= query.Where(...);. 这似乎正在使用只有最后一个学期,我猜是因为我试图每次都限制在同一领域。 如果我叫.ToArray()。AsQueryable已()在每次迭代我能得到我要找的cumlative restrinction行为,但它有一个简单的方法来做到这一点只能通过延迟执行运营商?

谢谢!

Answer 1:

如果你正在做这样的事情:

foreach (int foo in myFooArray)
{
  query = query.where(x => x.foo == foo);
}

...然后将只使用,因为每个其中标准将包含对“富”循环变量的引用的最后一个。

如果这是你在做什么,将其更改为:

foreach (int foo in myFooArray)
{
  int localFoo = foo;
  query = query.where(x => x.foo == localFoo);
}

......,一切都应该再次被罚款。

如果这不是发生了什么,请提供你在做什么的代码示例...



文章来源: Multiple Defered WHERE clause expressions in LINQ to SQL