我有一个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 blah blah blah之前,这曾经有效。现在,它不起作用 - 即。objectQuery
是null
。
现在,DBQuery<T> inherits IQueryable<T>
..所以我认为这应该可行。
如果我将代码更改为..
var x = (ObjectQuery<T>) source;
然后引发以下异常:-
System.InvalidCastException:无法转换类型为“System.Data.Entity.Infrastructure.DbQuery
1[Tests.Models.Order]' to type 'System.Data.Objects.ObjectQuery
1 [Tests.Models.Order]”的对象。
有什么建议么?