为什么无法检查模型兼容性?

我不得不从前大学工作。 所以我运行没有数据库的asp.net解决方案。 它创建了一个数据库。 我认为这是Code First或Code First Migrations。

然后我在de UI中尝试了一些测试并获得此消息:

EntityFramework.dll中出现“System.NotSupportedException”类型的exception,但未在用户代码中处理

附加信息:无法检查模型兼容性,因为数据库不包含模型元数据。 只能检查使用Code First或Code First Migrations创建的数据库的模型兼容性。

这是de消息来自的代码。

public class TemInitializer : System.Data.Entity.DropCreateDatabaseIfModelChanges { public override void InitializeDatabase(ApplicationDbContext context) { base.InitializeDatabase(context); } } 

任何人都可以告诉我如何解决这个或我需要看的地方?

如果数据库模式不再与代码中的类匹配, DropCreateDatabaseIfModelChanges初始化程序将删除并重新创建数据库。 它通过查看您的类并查看数据库中名为_MigrationHistory的表来确定“模型是否更改”。 如果没有这样的表,它会抛出问题中的exception。

所以要解决这个问题,您可以:

  • 使用不同的初始值设定项(例如DropCreateDatabaseAlways )或
  • 通过启用entity framework代码首次迁移 ,确保数据库中存在_MigrationHistory表。