2010-07-14 96 views
0

好吧,我是新来的EF和我有问题抓在筛选结果...动态查询与实体框架4

我想效仿EF代码做这样的事情:

select * 
from order o 
    inner join orderdetail d on (o.orderid = d.orderid) 
where d.amount > 20.00 

只是不知道如何做到这一点的EF来完成(LINQ到实体语法)

回答

1

如果有多个详细信息> 20.00,则您的SQL会为每个订单提供多个结果。这对我来说似乎是错误的。我认为你想:

var q = from o in Context.Orders 
     where o.OrderDetails.Any(d => d.Amount > 20.00) 
     select o; 
0

我会做这样的:

context.OrderDetails.Where(od => od.Amount > 20).Include("Order").ToList().Select(od => od.Order).Distinct(); 

我们首先考虑细节,包括订单,并采取不同的命令。

+0

这给了比他的SQL不同的结果,但我认为他的SQL是越野车,所以很难说。 – 2010-07-15 12:45:18

+0

这给出了相同的结果。它只返回数量大于20的细节并添加他们的订单。 – LukLed 2010-07-15 20:46:01