我有一个现有的数据库,我首先使用 EF 4.1 代码将我的 POCO 对象映射到表。但是我收到此错误:
EF 4.1 错误模型兼容性 无法检查,因为 电子放电元数据类型
即使我添加了OnModelCreate方法,它仍然给我同样的错误:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}
我的 POCO 和数据库表完全相同。
看起来问题是数据库存在,但您正在尝试使用 EF CodeFirst 创建它。 如果删除数据库,则很可能会运行,并且它将创建数据库和表。 这是遇到此问题的人的链接,这就是他们解决问题的方式:
http://forums.asp.net/t/1673379.aspx/1?Unable+to+generate+Edm+Metadata+table+at+runtime+from+EF+code+first+model
如果你想使用你现有的数据库(以防你里面有其他数据),我认为你需要修改Code First所期望的。 这是一篇关于如何做到这一点的SO文章:
实体框架 CTP 4 - 代码优先自定义数据库初始值设定项
确保您阅读了所有帖子,因为即使是那些未被接受为答案的帖子也有一些关于您可以做的事情的精彩信息。