MVC EF(代码优先) - 创建与AspNetUsers和自定义表的关系

时间:2016-03-27 20:45:08

标签: asp.net-mvc entity-framework ef-code-first entity-framework-6

MVC和EF新手。试图实现以下目标:

  • 包含个人用户帐户的新网站
  • 创建数据库表"联盟"因此,在创建新联盟时,LeagueAdmin是一个ApplicationUser

我跟着this tutorial试图达到我想要的效果。当我启动应用程序时,我可以无问题地注册新用户。但是,当我去创建一个新的联盟时,我得到以下错误:

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

我已经尝试了许多我已经阅读过的修正案,但它们往往会让我走上越来越复杂的错误之路。我觉得这应该很简单,我想在解决下一个错误之前先理解这个错误。

VS Project Source is here

1 个答案:

答案 0 :(得分:0)

最有可能的是,您的数据库不包含_MigrationHistory表。

将此代码添加到您的DbContext:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
}

按照查看 - &gt;转到程序包管理器控制台其他Windows - &gt;包管理器控制台

并编写以下命令:

enable-migrations
add-migration InitialCreate
update-database

可替换地;

您可以将此代码添加到DbContext;

static LeagueContext()
{
  Database.SetInitializer<LeagueContext>(
new DropCreateDatabaseAlways<LeagueContext>());
}