尝试将第二个where子句添加到linq表达式,但不会注册。
var query = _dbSetBookedResource.AsQueryable<Resource>();
var resources = (from Resource in query where Resource.DateFrom == date select Resource)
if(true)
{
resources.Where(b => b.MemberId == currentUserId);
}
由于某种原因,第二个where子句不会注册。
答案 0 :(得分:1)
由于某种原因,第二个where子句不会注册。
那是因为你没有在任何地方使用返回值。那只是设置一个查询,然后忽略它。没有LINQ方法更改它们被调用的值 - 而是创建一个 new 查询,它具有适当的过滤,投影等。
你需要:
resources = resources.Where(b => b.MemberId == currentUserId);
另请注意,您的初始查询可以更简单地编写为:
var resources = query.Where(r => r.DateFrom == date);
当你想要的只是一个简单的过滤器或投影时,查询表达式是过度的。