0

次のように、AlphaGroupID で 2 つのモデルを結合する LINQ to Entities ステートメントがあります。

IEnumerable<ICD.ViewModels.HomeSearchViewModel> ICDList = (from a in ICDUnitOfWork.AlphaGroups.Find()
                                                                       join e in ICDUnitOfWork.Alphas.Find()
                                                                       on a.AlphaGroupID equals e.AlphaGroupID)

AlphaGroupID で 2 つのテーブルを結合する必要がありますが、ICDList に対応する AlphaGroupID があるかどうかに関係なく、すべての ICDUnitOfWork.AlphaGroups も必要です。どうすればこれを達成できますか?

4

1 に答える 1

1

使用join into(GroupJoin と同じ):

var query = from a in ICDUnitOfWork.AlphaGroups.Find()
            join e in ICDUnitOfWork.Alphas.Find()
                   on a.AlphaGroupID equals e.AlphaGroupID into g
            select new { AlphaGroup = a, Alphas = g };

GroupJoin は階層的な結果を生成します。外側のシーケンスの各アイテムに対して、内側のシーケンスの対​​応するアイテムのシーケンスが生成されます (シーケンスは空である可能性があります)。

于 2012-11-08T23:36:41.233 に答える