1対多の関係Customer
のエンティティとエンティティがあるとしSales
ます。最近の売上がN個のすべての顧客を取得するにはどうすればよいですか?
var result = Customers.Where(c => c.Sales.Any());
これにより、すべての顧客にすべての売上が返されます。各顧客から2つの販売記録が必要な場合はどうなりますか?
P / S:クエリ構文でそれを行うことができます。メソッド構文の解決策を探しています。メソッド構文形式でそれらをチェーンする方法がわかりません
var result = from cust in context.Customers
select new
{
Customers = cust,
Sales = cust.Sales.OrderBy(s => s.Date).Take(2)
};
これは機能しますが、これが最善の方法かどうかはわかりません。
編集:OK、ここに含めたクエリ構文も機能していないことがわかりました。匿名タイプののみSales
が実質的に2レコードに削減されます。
var filtered = result.AsEnumerable().Select(r => r.Customers);
これを行うと、すべての売上を含む顧客のリストが表示されます