[英]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()什么也不做,只是返回。
我的问题:
有没有办法避免为IdentityContext创建重复的上下文,并以某种方式将其添加到我现有的数据库上下文?
如果我像上面那样单独使用DbContext(但使用相同的现有数据库),如何确保自动创建标识/角色表?
您可以通过在默认DbContext中扩展AccountDbContext来避免创建两个上下文。
public class YourDbContext : AccountDbContext
{
}
好的,找到了解决方案。 我可以直接继承IdentityDbContext而不是DbContext(因为IdentityDbContext无论如何都会扩展DbContext)。 可以像往常一样添加迁移。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.