WCF数据服务和EF 4 CTP 5 POCO - 无法强制转换无法转换类型为“... DbQuery”的对象以键入“System.Linq.IQueryable”

时间:2011-01-31 18:37:39

标签: entity-framework-4 poco odata wcf-data-services

我在查询表格中的前50行时收到此错误消息。我的项目使用Entity Framework 4 CTP 5 POCO:

Unable to cast object of type 'System.Data.Entity.Infrastructure.DbQuery' to type 'System.Linq.IQueryable`1[Lib.Model.Post]'

我的模型基于这个答案:Entity Framework 4 CTP 4 / CTP 5 Generic Repository Pattern and Unit Testable

有关如何解决此错误的想法吗?

感谢。

1 个答案:

答案 0 :(得分:2)

更改DataService上下文并覆盖ObjectContext后,该服务现在正在运行。这是我改变了以防任何人也遇到同样的问题:

public class KennyService : DataService<MyDataContext>
{
    // Codes
}

public class KennyService : DataService<System.Data.Objects.ObjectContext>
{
    // Codes
}

protected override ObjectContext CreateDataSource()
{
    var context = ((IObjectContextAdapter)new Lib.MyDataContext()).ObjectContext;
    context.ContextOptions.ProxyCreationEnabled = false;

    return context;
}