我刚刚开始使用ASP .Net Identity 2的新项目。它为标识表生成一个开箱即用的数据库,这很好。我的困惑是我在哪里放置我的应用程序特定的表?我是否为它们创建一个完全独立的 DbContext 和数据库,或者最佳实践是将所有表捆绑到一个数据库中?
谢谢
使用的是 MVC5 身份 2 asp.net 那么 IdentityModel 中已经存在 ApplicationDbContext.cs 。所以你可以使用它。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("ApplicationDbContext", throwIfV1Schema: false)
{
}
public DbSet<Department> Departments { get; set; }
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
通常,您将扩展 IdentityDbContext 类并将特定于应用程序的表放入此上下文中。这看起来类似于以下内容
public class BlogContext : IdentityDbContext<ApplicationUser>
{
public BlogContext()
: base("BlogConnection")
{
}
public DbSet<Post> Posts { get; set; }
public DbSet<Comment> Comments { get; set; }
}
在某些边缘情况下,最好将应用程序数据与按标识保留的应用程序数据分开。一种情况可能是,您的应用程序数据与您的用户数据无关,并且您希望将它们分开。但是,在为应用程序数据创建单独的上下文时,您应该记住,您必须处理两个上下文,这有时会很痛苦。