实体框架4.1禁用模型兼容性检查

时间:2011-05-23 08:42:37

标签: c# entity-framework ef-code-first entity-framework-4.1

我需要使用'DropCreateDatabaseIfModelChanges' - Initializer类,因为我想创建一个特殊实体(table),如果它不存在的话。我的问题是,我的DbContext中还有另一个实体,它不应该是模型兼容性检查的一部分。

我收到以下错误消息:

Model compatibility cannot be checked because the EdmMetadata type was not inclu
ded in the model. Ensure that IncludeMetadataConvention has been added to the Db
ModelBuilder conventions.

是否有可能从此检查中排除特殊实体?

修改 我做过Devart的建议。问题似乎与我第一次采取的不同。如果我让EF使用CheckedContext创建一个新数据库,一切正常。但是我收到上面的错误信息,当我尝试使用我的NonCheckedContext时应该使用现有的表...

EDIT2: This是一个有效的解决方案。当数据库之前不存在时,一切正常。但是对于我来说,删除/创建数据库是没有选择的。

1 个答案:

答案 0 :(得分:1)

一种可能的解决方案:创建一个继承自DbContext的上下文类,然后创建从基础继承的两个单独的子上下文--CheckContext和NonCheckedContext,并相应地设置数据库初始化策略。
请注意,您应首先访问CheckedContext,以便它触发所有检查。