相关疑难解决方法(0)

如何将DBQuery <T>转换为ObjectQuery <T>?

我有一个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 ...
    }
}
Run Code Online (Sandbox Code Playgroud)

在我转换到Entity-Framework 4 CTP5 Magic Unicorn等等之前,这曾经工作过.现在,它不起作用 - 即.objectQuerynull.

现在,DBQuery<T> inherits IQueryable<T>..所以我认为这应该工作.

如果我将代码更改为..

var x = (ObjectQuery<T>) source;
Run Code Online (Sandbox Code Playgroud)

然后抛出以下异常: -

System.InvalidCastException:无法转换类型为'System.Data.Entity.Infrastructure.DbQuery 1[Tests.Models.Order]' to type 'System.Data.Objects.ObjectQuery1 [Tests.Models.Order]'的对象.

有什么建议?

.net entity-framework objectquery entity-framework-4

12
推荐指数
2
解决办法
1万
查看次数