我刚才写了这个linq语句:
Location loc = db.Locations.Where(l => l.name == name).Where(l => l.type == "SERV").FirstOrDefault();
我想知道你是如何做select from where and ...
或者是否有更好的方法来做到这一点
我正在尝试从地址名称中选择名称是传入的名称,类型是传入的类型,请找到第一个与此匹配的位置。
答案 0 :(得分:2)
您无需链接Where
- 您可以使用&&
代替。此外,由于FirstOrDefault
采用条件,您可以在调用中移动整个子句,如下所示:
Location loc = db
.Locations
.FirstOrDefault(l => l.name == name && l.type == "SERV");
答案 1 :(得分:1)
你正在做的事情会很好,但你也可以这样做:
Location loc = db.Locations.Where(l => l.name == name && l.type == "SERV").FirstOrDefault();
<强>更新强>
由于这显然违背了数据库对象,我很好奇底层SQL在每种情况下会是什么样子 - 我的猜测是它们会是相同的。
我使用ToTraceString()扩展来查看SQL,正如预期的那样,它们是相同的。