使用Linq to Entities时,当我在使用已编写的LINQ语句创建的Linq对象上执行Where lamba表达式时,where子句不起作用。这种方法行不通,查询会被执行,但结果将不会进行过滤。
这是有效的。查询被执行,并且结果已经正确地过滤返回。
据我所知,这两个查询应该返回相同的结果。第一个查询为什么不遵循Where子句,原因是什么?
var myQuery = (from l in db.MyTable
select l);
myQuery.Where(r => availableStatusList.Contains(r.Status));
var myObj = myQuery.ToList();
这是有效的。查询被执行,并且结果已经正确地过滤返回。
var myQuery = (from l in db.MyTable
select l).Where(r => availableStatusList.Contains(r.Status));
var myObj = myQuery.ToList();
据我所知,这两个查询应该返回相同的结果。第一个查询为什么不遵循Where子句,原因是什么?
Where
子句创建一个新对象,而不是改变现有对象。 - Ian Mercer