にDBQuery<T>
変換するがありますIQueryable<T>
(このビットは正常に機能します)。しかし、私はIQueryableをObjectQueryに変換しようとしています..失敗します:-
public void Foo(this IQueryable<T> source)
{
// ... snip ...
ObjectQuery<T> objectQuery = source as ObjectQuery<T>;
if (objectQuery != null)
{
// ... do stuff ...
}
}
これは、Entity-Framework 4 CTP5 Magic Unicorn blahblahblahに切り替える前は機能していました。今、それは機能していません-すなわち。objectQuery
ですnull
。
さて、DBQuery<T> inherits IQueryable<T>
..だから私はこれがうまくいくはずだと思いました。
コードを..に変更した場合
var x = (ObjectQuery<T>) source;
次に、次の例外がスローされます:-
System.InvalidCastException:タイプ'System.Data.Entity.Infrastructure.DbQuery1
1[Tests.Models.Order]' to type 'System.Data.Objects.ObjectQuery
[Tests.Models.Order]'のオブジェクトをキャストできません。
助言がありますか?