0

タイトルが少しわかりにくいことは知っていますが、問題は非常に単純です。私は使用Entity FrameworkしてCode Firstアプローチしています。関係1:Nの2つのエンティティがあります。Codeレコードの一意性は、2つの列の組み合わせ- +に由来しますCountryID。最初は、それ自体が一意のファイルになると思ったCodeので、個別のレコードを取得するためのクエリは次のようになりました。

IList<SoleColor> soles = SoleColorService.All()
                .GroupBy(x => x.Sole.Code)
                .Select(g => g.FirstOrDefault())
                .ToList();

しかし、そうすることで、Code(または正確には- Sole.Code)が同じであるCountryIDが異なるレコードが失われることがあります。Code必要なのは、 +CountryIDが一意であるすべてのレコードを返すようにクエリを変更することです。

4

1 に答える 1

1

匿名タイプでグループ化する場合:

.GroupBy(x => new { x.Sole.Code, x.Sole.CountryID })

ところで:FirstOrDefaultから返されたグループで使用GroupByすることは意味がありません。によって返されるすべてのグループにGroupByは少なくとも1つの要素が含まれているため、を使用Firstすると常に成功することが保証されます。

于 2013-03-25T15:20:32.037 に答える