我有一段感情 订单(1)=>项(许多)=> distribtuion(很多)=>收件人(许多)
使用linq实体(EF4)是否有一种高效的方法来获得:
这是我目前的解决方案:
List<Distribution> distributions = new List<Distribution>();
List<Recipient> recipients = new List<Recipient>();
foreach (OrderItem oi in order.OrderItems)
{
foreach (Distribution d in oi.Distributions)
if (!distributions.Contains(d))
{
distributions.Add(d);
foreach (Recipient r in d.Recipients)
if (!recipients.Contains(r))
recipients.Add(r);
}
}
我在想我应该有办法让Order.Orderitems.Distribution.Recipients获得一个linq查询,但也许我错了。
答案 0 :(得分:-1)
您可以使用双向属性执行以下操作:
IEnumerable<Recipient> orderRecipients =
Entities.Recipients.Where(r => r.Distribution.Item.OrderID == OrderID);
与(b)类似,取决于您的实际实体名称和外键。