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

问题描述

| 我需要使用\'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,以便它触发所有检查。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...