我不得不从前大学毕业后进一步工作。所以我在没有数据库的情况下运行 asp.net 解决方案。它创建了一个数据库。我认为这是代码优先或代码优先迁移。
然后我在 de UI 中尝试了一些测试并收到此消息:
An exception of type 'System.NotSupportedException' occurred in EntityFramework.dll but was not handled in user code
Additional information: Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations.
这是消息来源的代码。
public class TemInitializer : System.Data.Entity.DropCreateDatabaseIfModelChanges<ApplicationDbContext>
{
public override void InitializeDatabase(ApplicationDbContext context)
{
base.InitializeDatabase(context);
}
}
谁能告诉我如何解决这个问题或我需要看哪里?
最佳答案
如果数据库架构不再与代码中的类匹配,DropCreateDatabaseIfModelChanges
初始化程序将删除并重新创建数据库。它通过查看您的类和数据库中名为 _MigrationHistory
的表来确定“模型是否更改”。如果没有这样的表,则抛出问题中的异常。
所以要解决这个问题,你可以:
- 使用不同的初始值设定项(例如
DropCreateDatabaseAlways
)或 - 启用Entity Framework code first migrations,确保数据库中有一个
_MigrationHistory
表。 .
关于c# - 为什么无法检查模型兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29349443/