Asp.net mvc 使用MVC5和.Net标识的迁移的最佳方式是什么?

Asp.net mvc 使用MVC5和.Net标识的迁移的最佳方式是什么?,asp.net-mvc,asp.net-mvc-5,entity-framework-migrations,asp.net-identity,Asp.net Mvc,Asp.net Mvc 5,Entity Framework Migrations,Asp.net Identity,我只是先用EF6和代码学习MVC5,但遇到了一些困惑 人们如何通过身份更改(尤其是迁移)来管理他们的数据库集 您是在管理两组迁移,还是将普通数据库集放入IdentityModel.cs文件 这就是我目前拥有的: public class ApplicationUser : IdentityUser { } public class AoecContext : IdentityDbContext { public AoecContext() : base("Default

我只是先用EF6和代码学习MVC5,但遇到了一些困惑

人们如何通过身份更改(尤其是迁移)来管理他们的数据库集

您是在管理两组迁移,还是将普通数据库集放入IdentityModel.cs文件

这就是我目前拥有的:

public class ApplicationUser : IdentityUser
{
}

public class AoecContext : IdentityDbContext
{
    public AoecContext()
        : base("DefaultConnection")
    {
    }
    public DbSet<Course> Courses { get; set; }
    public DbSet<Faculty> People { get; set; }
    public DbSet<SitePage> SitePages { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<SitePage>().HasOptional(p => p.CourseDetails);
    }
}
公共类应用程序用户:IdentityUser
{
}
公共类AoecContext:IdentityDbContext
{
公共AoecContext()
:base(“默认连接”)
{
}
公共数据库集课程{get;set;}
公共数据库集人物{get;set;}
公共数据库集站点页面{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
基于模型创建(modelBuilder);
modelBuilder.Entity().has可选(p=>p.CoursedDetails);
}
}

这是一个好主意,还是一个坏主意?

如果您将IdentityDbContext与DomainDbContext分开,您的关注点会更好地分开,但是您需要管理两组迁移(以及其他事情)。现在,您只需要一组迁移。我不会认为你所做的是“坏事”,这取决于项目。p>
如果有什么安慰的话,我们目前正在处理的项目只使用一个DbContext,它也像您的一样从IdentityDbContext继承。它确实引入了一些我希望不存在的对数据访问项目的引用,但它确实极大地简化了在数据库生成、持久性和迁移方面使用EF的工作。很难说我们将来是否会超过它。

谢谢Joel。似乎每次微软进行更新时,他们都会抛出一些好东西,然后用一个坏主意(或者在这种情况下是半途而废)将其杀死。最大的问题是缺乏文档和不推荐的代码示例。关于最佳实践的文献很少,找到一个以RC为目标的代码示例和找到一个以RTM为目标的代码示例一样容易。实际上我有一个问题与此无关。根据我在过去几个月学到的知识,我一直在努力自己回答这个问题,但我还没有完成打字。