EF 4.1 Code First与现有数据库

时间:2011-05-09 01:43:12

标签: entity-framework-4.1 database-first

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

  

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

尽管我已经添加了OnModelCreating方法,但它仍然给出了同样的错误:

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

我的POCO和数据库表完全相同。

1 个答案:

答案 0 :(得分: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 Custom Database Initializer

请务必阅读所有帖子,因为即使是那些未被接受为答案的帖子也会提供有关您可以做的事情的一些重要信息。