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 に答える