1

可以说我有这个参考设置

public class Account
{
    Guid ID {get;set;}
    string name {get;set}
}
public class Order
{
    Guid ID {get;set;}
}
public class AccountOrder
{
    Guid ID {get;set}
    Guid AccountID {get;set}
    Guid OrderID {get;set}
}

Now when I want to model this setup as so:
public class AccountOrderModel
{
    //One account with many orders 
    string name {get;set}
    List<Order>orders {get;set;}
}

我想使用 Linq 根据帐户订单参考获取所有订单的 1 个帐户。

4

1 回答 1

4

我之前发布的代码不是正确的左外连接。如果没有关联订单,它不会返回帐户。在此已修复的代码中:

        var aom = from a in accounts
                  join ao in accountorders on a.ID equals ao.AccountID into aoGroup
                  from aod in aoGroup.DefaultIfEmpty(new AccountOrder())
                  join o in orders on aod.OrderID equals o.ID into oGroup
                  group oGroup by a into g
                  select new AccountOrderModel() { Name = g.Key.Name, orders = g.SelectMany(x => x).ToList() };

它已经过测试,我想我终于正确了。

于 2013-06-16T18:13:05.773 回答