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

use*_*681 3 c# asp.net entity-framework

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

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

EntityFramework.dll中出现"System.NotSupportedException"类型的异常,但未在用户代码中处理

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

这是de消息来自的代码.

public class TemInitializer : System.Data.Entity.DropCreateDatabaseIfModelChanges<ApplicationDbContext>
{
    public override void InitializeDatabase(ApplicationDbContext context)
        {
            base.InitializeDatabase(context);
        }
}
Run Code Online (Sandbox Code Playgroud)

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

OJ *_*eño 13

DropCreateDatabaseIfModelChanges初始化删除并重新创建数据库,如果数据库架构不再在你的代码相匹配的类.它通过查看您的类并查看_MigrationHistory数据库中调用的表来确定"模型是否更改" .如果没有这样的表,它会抛出问题中的异常.

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

  • 使用不同的初始值设定项(例如DropCreateDatabaseAlways)或
  • _MigrationHistory通过启用实体框架代码首次迁移,确保数据库中有表.