繁体   English   中英

如何使用.net core 2.1中的Identity用户和角色更新现有数据库?

[英]How to update existing DB with Identity users and roles in .net core 2.1?

我正在使用代码优先模式来创建数据库。 我已经有了DbContext / DB设置。 现在我决定使用Identity.EntityFrameworkCore为它添加auth支持。 我创建了另一个DbContext,以获得如下所示的身份相关表:

public class AccountDbContext:IdentityDbContext
    {
        public AccountDbContext(DbContextOptions<AccountDbContext> options) : base(options)
        {

        }
    }

我在startup.cs中添加了上面的DbContext,如下所示:

services.AddDbContext<AccountDbContext>(o => o.UseSqlServer(Configuration.GetConnectionString("TESTDB")));

最后:

dbContext.Database.EnsureCreated();

但由于TESTDB已经与现有的db上下文相关联,因此已经创建了它。 所以我想函数调用 - EnsureCreated()什么也不做,只是返回。

我的问题:

  1. 有没有办法避免为IdentityContext创建重复的上下文,并以某种方式将其添加到我现有的数据库上下文?

  2. 如果我像上面那样单独使用DbContext(但使用相同的现有数据库),如何确保自动创建标识/角色表?

您可以通过在默认DbContext中扩展AccountDbContext来避免创建两个上下文。

public class YourDbContext : AccountDbContext
{
}

好的,找到了解决方案。 我可以直接继承IdentityDbContext而不是DbContext(因为IdentityDbContext无论如何都会扩展DbContext)。 可以像往常一样添加迁移。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM