给定一个Order
具有许多OrderItem
s 的实体,而每个实体都有一个 s,Discount
我们试图检索所有具有至少一个折扣的订单,该折扣比50%
连接订单和订单商品要多。
有很多关于在 Linq-To-Entities 中加入两个实体的文章,但它们的共同点是它们都依赖于作为导航属性公开的外键:
db.Orders.Join(
db.OrderItems.Where(i => i.Discount > 50),
o => o.Id,
i => i.OrderId)
但是,我们OrderItem
没有OrderId
财产。Order
具有标识关系的属性OrderItems
,外键由 EF4.1 CodeFirst 管理。
问题:有没有办法通过指示o => o.OrderItems
识别关系并让 EF 找出用于连接的 FK 来执行连接?
在后台:我们尝试在DevArt dotConnect.Any
上使用,OrderItems
但存在一个重大问题:
db.Orders.Where(o => o.OrderItems.Any(i => i.Discount > 50))