繁体   English   中英

我无法提出正确的 linq 请求

[英]I can not make the correct linq request

我提出一个请求,它有效。

var query = db.Persons.Where(p => p.Date == "27.02.2020").Where(p => p.Country == "USA");

但是由于我需要在 if-else 中使用它,所以我对其进行了一些更改,现在他只选择了最后一个 Where。

如何解决这个问题?

var query = db.Persons;

query.Where(p => p.Date == "27.02.2020");
query.Where(p => p.Country == "USA");

与所有 LINQ 方法一样, Where方法不会就地修改源枚举,而是返回一个新的枚举,该枚举应用了操作,或者在这种情况下为过滤器。

这意味着您需要将每个操作的结果分配回您的变量以使其保持不变。 以下内容应等同于您的原始代码段:

IQueryable<Person> query = db.Persons;
query = query.Where(p => p.Date == "27.02.2020");
query = query.Where(p => p.Country == "USA");

正如评论中所指出的, query变量类型现在需要与db.Persons的类型Where的返回类型兼容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM