EDIT:LINQ OrderBy/ThenBy ChildrenCollection.SortOrder
この例の両方のクエリは、場所の並べ替え順に並べ替えられていません。誰にどのようにこれを行うにはどのような提案がありますか?
子エンティティ列によるグループのエンティティコレクションの注文には、何か助けが必要です。私はグループから場所への1対1の関係を持っています。
グループをグループ名で、次にロケーションの並べ替え順に並べる必要があります。
子エンティティはコレクションであるため、問題が発生しています。
var groups = db.GetNavigationGroups()
.Where(g => selectedLocation > 0 ? g.NavigationGroupLocations.Any(l => l.Location == selectedLocation) : true)
.SelectMany(g => g.NavigationGroupLocations, (g, l) => new { g, l })
.OrderBy(x => x.g.Name)
.ThenBy(x => x.l.SortOrder)
.Select(x => x.g);
その後、私は)(FirstOrDefaultを使用して、このアプローチを試してみました:
List<NavigationGroup> groups = db.DataModel.NavigationGroups
.Where(g => selectedLocation > 0 ? g.NavigationGroupLocations.Any(l => l.Location == selectedLocation) : true)
.OrderBy(g => g.Name)
.ThenBy(g => g.NavigationGroupLocations.Where(l => l.Location == selectedLocation && l.GroupID == g.ID).OrderBy(l => l.SortOrder).FirstOrDefault())
.ToList();
問題は、私が取得するように見えることができないということである。ここ
は、私は動作しますが、重複を返しますが、その使用していたコードですSortOrder列の位置に基づいてグループを作成する必要があります。
驚くばかりです。ありがとうございました! – Jared