1

Entity Framework 4.1 を使用して、MVC3 アプリに取り組んでいます。LINQ クエリを実行し、 として返しましたIEnumerable<T>。しかし、コントローラーではInclude(other entity)、のようにを使用する必要があるため、ObjectSet他のエンティティ値 (クエリを実行しているエンティティに関連付けられている) を表示できます。IEnumerable<T>からへの明示的なキャストを試みましObjectSet<T>たが、例外がスローされます。から取得ObjectSetIEnumerableたり、エンティティを含める方法はありますIEnumerableか?
前もって感謝します。

4

2 に答える 2

2

コンテキストがまだ生きている場合(使用を終了していない場合)、および行っていない場合は、.ToList()にキャストできるはずですObjectQuery<T>

より安全な方法は、 queryableがIQueryable<T>であるかどうかをチェックする拡張メソッドを使用することです。ObjectQuery<T>ObjectQuery<T>

于 2012-09-02T15:42:04.727 に答える
0

IEnumerable にキャストすると、データソースから切断されます。

DAL がまだ IQueryable または IObjectQuery である間に、関連するエンティティを DAL に含め、完全な結果を IEnumerable として返す必要があります。

そうしないと、DB で余分なヒットが発生します。

于 2012-09-02T15:33:14.383 に答える