C# Breeze System.InvalidCastException与EntityFramework

C# Breeze System.InvalidCastException与EntityFramework,c#,entity-framework,odata,breeze,C#,Entity Framework,Odata,Breeze,无法获取数据。我可以在VisualStudio中看到数据。但是当我访问站点mycomputername:21290/breeze/breeze/getdata时,我无法让web前端显示数据。我遇到此异常:无法将类型为“MySqlEntities”的对象强制转换为类型为“System.Data.Entity.DbContext” 我必须有odata控制器吗 public class BreezeController: ApiController { private readonly IReposi

无法获取数据。我可以在VisualStudio中看到数据。但是当我访问站点
mycomputername:21290/breeze/breeze/getdata
时,我无法让web前端显示数据。我遇到此异常:无法将类型为“MySqlEntities”的对象强制转换为类型为“System.Data.Entity.DbContext”

我必须有odata控制器吗

public class BreezeController: ApiController
{
private readonly IRepository _repo;

..

[HttpGet]
        public IEnumerable<MySqlType> GetData()
        {
            return _repo.GetData();
        }

}

public class Repository : IRepository
{
private readonly EFContextProvider<MySqlEntities> 
            _contextProvider = new EFContextProvider<MySqlEntities>();

 public IQueryable<MySqlType> GetData()
        {
            return _contextProvider.Context.TableA;
        }

}
公共类BreezeController:ApiController
{
私人只读电子回购;
..
[HttpGet]
公共IEnumerable GetData()
{
返回_repo.GetData();
}
}
公共类存储库:IRepository
{
专用只读EFContextProvider
_contextProvider=新的EFContextProvider();
公共IQueryable GetData()
{
return_contextProvider.Context.TableA;
}
}
Designer.cs中自动生成的代码
MySqlEntities:ObjectContext

错误消息中有提示:EFContextProvider需要一个兼容的类型-可以强制转换为System.Data.Entity.DbContext的类型;不是你的MySqlEntities类型

所以这一行:

private readonly EFContextProvider<MySqlEntities> 
        _contextProvider = new EFContextProvider<MySqlEntities>();
专用只读EFContextProvider
_contextProvider=新的EFContextProvider();
在您的存储库类中,应该提供一个兼容的db上下文

请参阅Breeze教程:


将来,如果您详细说明代码中的MySqlEntities是什么,就会更清楚。

是从
DbContext
ObjecContext
对象上下文派生的
MySqlEntities
。edmxMySqlEntities中的Audto生成代码在edmx中作为ObjectContext自动生成。它必须是dbcontext?谢谢你给我指出文档。使用vs2013生成edmx后,MySqlEntities将从DbContext派生。MySqlEntites是从vs2010生成的,它是从ObjectContext派生的。文档表明DbContext和ObjectContext都可以工作,但我不想弄清楚为什么不能工作,而是想升级到使用DbContext。