Breeze System.InvalidCastException与EntityFramework
问题描述:
无法获取数据。我可以在Visual Studio中看到数据。但是我可以在网页前端显示数据,当我去到网站mycomputername:21290/breeze/breeze/getdata
。我得到这个异常:无法投入'MySqlEntities'类型的对象来键入'System.Data.Entity.DbContext'。Breeze System.InvalidCastException与EntityFramework
我必须要有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;
}
}
自动生成的代码中Designer.cs MySqlEntities:ObjectContext的
答
该提示是在错误消息:EFContextProvider期望一个兼容型 - 这可以转换为System.Data.Entity.DbContext ;不是你的MySqlEntities类型。
所以这行:
private readonly EFContextProvider<MySqlEntities>
_contextProvider = new EFContextProvider<MySqlEntities>();
你
库类应提供一个兼容的数据库环境。
见微风教程:http://www.breezejs.com/documentation/efcontextprovider
对于未来,它会更清楚,如果你阐述在代码什么MySqlEntities。
MySqlEntities是从DbContext或ObjecContext派生的吗? – Pawel 2014-09-29 22:15:36
ObjectContext。 Edmx – kay00 2014-09-30 14:31:45