この機能的なLinq-to-Sqlステートメントがあります。
public IEnumerable<int> GetChildIds(IEnumerable<int> selectedParentIds)
{
using (var context = new MyContext())
{
return context.Children
.Where(c => selectedParentIds.Contains(c.parentId))
.Select(c => c.Id)
.ToList();
}
}
要求に応じて、選択した子IDが表示されますが、SQLプロファイラーを実行しています。
このステートメントは、データベースに個別の要求を送信してselectedParentId
いるように見えますが、これは私には最適ではないと思われます。
サーバーとのトラフィックを最小限に抑えるために、このステートメントを再構築する方法はありますか?私が取るべき別のアプローチはありますか、それともこれはそれが得るのと同じくらい良いですか?
編集
指導ありがとうございます。
これは私のトレース出力の解釈の誤りです。Linq-To-SQLは、SQLServer 2008の場合と同じように、SQLServer2005に対して完全に合理的なステートメントを作成します。問題は他の場所にあります。