2

我有一个现有的数据库,我首先使用 EF 4.1 代码将我的 POCO 对象映射到表。但我得到这个错误:

无法检查 EF 4.1 错误模型兼容性,因为 EdmMetadata 类型

即使我添加了 OnModelCreating 方法,它仍然给我同样的错误:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{     
    modelBuilder.Conventions.Remove<IncludeMetadataConvention>(); 
}

我的 POCO 和 DB 表完全相同。

4

1 回答 1

2

看起来问题是数据库存在,但您正在尝试使用 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 文章:

Entity Framework CTP 4 - Code First 自定义数据库初始化器

确保你阅读了所有的帖子,因为即使是那些未被接受为答案的帖子也有一些关于你可以做的事情的重要信息。

于 2011-05-09T01:59:14.743 回答