【问题标题】:What is the best way to use migrations with MVC5 and .Net Identity?使用 MVC5 和 .Net Identity 进行迁移的最佳方式是什么?
【发布时间】:2014-03-21 06:28:59
【问题描述】:

我只是在逐步学习使用 EF6 和 Code First 的 MVC5 并且遇到了一些困惑...

人们如何通过身份更改管理他们的 DbSet,尤其是迁移?

您是在管理两组迁移还是将普通 DbSet 放入 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);
    }
}

这是个好主意,还是很糟糕?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-5 entity-framework-migrations asp.net-identity


    【解决方案1】:

    如果您将 IdentityDbContext 与 DomainDbContext 分开,您的顾虑会更好地分开,但是您需要管理两组迁移(除其他外)。正如你所拥有的,你只需要一组迁移。我不一定会认为您在做“坏事”-这实际上取决于项目。

    如果有任何安慰的话,我们目前正在处理的项目只使用一个 DbContext,它也像您的一样从 IdentityDbContext 继承。它确实引入了一些我希望不存在的对数据访问项目的引用,但它确实极大地简化了在数据库生成、持久性和迁移方面使用 EF 的工作。未来我们是否会超越它很难说。

    【讨论】:

    • 谢谢乔尔。似乎每次 MS 进行更新时,他们都会抛出好东西并用一个坏主意杀死(或者在这种情况下是半个工作)。
    • 最大的问题是缺少文档已弃用的代码示例。关于最佳实践的文献很少,找到一个针对 RC 的代码示例就像找到一个针对 RTM 的代码示例一样容易。我实际上有一个与此here 松散相关的问题。我一直在根据过去几个月学到的知识自己回答,但我还没有完成输入。
    猜你喜欢
    • 2022-11-26
    • 1970-01-01
    • 2013-08-10
    • 2015-03-07
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    相关资源
    最近更新 更多