IdentityDbContext似乎有很多混乱.
如果我们在应用程序中创建两个数据库上下文,一个用于Identity,一个用于我们的自定义业务数据,则Identity Database Context继承自IdentityDbContext,而我们的自定义业务数据继承自DbContext.
所以让我们将以下内容添加到控制器:
private MyDbContext db = new MyDbContext();
private ApplicationDbContext identityDb = new ApplicationDbContext();
Run Code Online (Sandbox Code Playgroud)
以下是控制器中的Index方法:
var thingsInMyBusinessDb = db.Things.ToList();
var usersInIndentityDb = identityDb.AspNetUsers.ToList(); // THIS WILL HAVE AN ERROR
var roles = identityDb.AspNetRoles.ToList(); // ERROR
Run Code Online (Sandbox Code Playgroud)
您还会注意到Indentity数据库中的表不可用.为什么是这样?
目前从2.0.0-beta1开始,有一个用户和角色项目,但我希望实际的表格可用. 那么为何不?如果我想访问AspNetUserRoles怎么办?
当然,如果它被视为实体框架中的任何数据库上下文,那么Asp.Net Identity的许多混淆和问题肯定会消失.