问题描述
|
我需要使用\'DropCreateDatabaseIfModelChanges \'-初始化程序类,因为我想创建一个特殊的实体(表)(如果不存在)。我的问题是,我在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时,应该使用现有表...
编辑2:
这是一个可行的解决方案。如果以前不存在数据库,则一切正常。但是,对我来说,删除/创建数据库是没有选择的。
解决方法
一种可能的解决方案:创建一个从DbContext继承的上下文类,然后创建从基类继承的两个单独的子上下文-CheckedContext和NonCheckedContext,并相应地设置数据库初始化策略。
请注意,您应该首先访问CheckedContext,以便它触发所有检查。