动态查询与实体框架4
问题描述:
好吧,我是新来的EF和我有问题抓在筛选结果...动态查询与实体框架4
我想效仿EF代码做这样的事情:
select *
from order o
inner join orderdetail d on (o.orderid = d.orderid)
where d.amount > 20.00
只是不知道如何做到这一点的EF来完成(LINQ到实体语法)
答
如果有多个详细信息> 20.00,则您的SQL会为每个订单提供多个结果。这对我来说似乎是错误的。我认为你想:
var q = from o in Context.Orders
where o.OrderDetails.Any(d => d.Amount > 20.00)
select o;
答
我会做这样的:
context.OrderDetails.Where(od => od.Amount > 20).Include("Order").ToList().Select(od => od.Order).Distinct();
我们首先考虑细节,包括订单,并采取不同的命令。
这给了比他的SQL不同的结果,但我认为他的SQL是越野车,所以很难说。 – 2010-07-15 12:45:18
这给出了相同的结果。它只返回数量大于20的细节并添加他们的订单。 – LukLed 2010-07-15 20:46:01