一連の Entity Framework オブジェクトを照会し、WCF RIA サービスを介してそれらをライトスイッチに投影しています。
私のクエリでは、いくつかのテーブル間で結合を実行します。そのうちの 1 つはサマリー テーブルの詳細です。リスト内の「最初の」アイテムである詳細アイテムを特定し、列挙中に投影の現在のアイテムと比較したいと考えています。投影にある理由は、使用可能なプロパティのどれがこの特定の投影のプロパティを設定するかを変更したいからです。
これは非常に削減されたクエリです
var result = (from dataItem in (from x in Context.xs
join y in Context.ys
on x.property = y.property
select new {x, y})
.Select( (model, index) =>
new ObjectType
{
Id = index,
OneOfTwo = model.x.property,
(
from y in Context.ys
where y.SomeProperty == model.Property
select y)
.OrderBy(list=>list.Id)
.FirstOrDefault()
.ComparedProperty ==model.ComparedProperty
)
? model.AnotherProperty
: model.YetAnotherProerty
}
);
読み取り中に Context を使用しようとしているため、DataReader エラーが発生することなく内部クエリを評価するにはどうすればよいですか?
更新:
私はいくつかの調査を行い、これは linq to sql の問題ではなく、linq to entities の問題であることに気付きました。基本的に、その操作は、サポートされていないパラメーター化されたクエリを使用するのと同じです。この状況での回避策は何ですか?