I have a MVC 5 application, which uses the Default Identity authentication. The user profile is part of our model, which means that there are several class which have a for
The solution I came up with recently is to use single context for both ASP.NET identity data and your business entities:
public class DatabaseContext : IdentityDbContext<UserInfo>
{
public virtual DbSet<Comment> Comments { get; set; } // Your business entities
public DatabaseContext()
: base("name=DatabaseContext")
{
}
}
Notice that the DatabaseContext
inherits from the IdentityDbContext<UserInfo>
.
There are some trade-offs with this approach: for example, your data access layer should reference Microsoft.AspNet.Identity.Core
and Microsoft.AspNet.Identity.EntityFramework
; however, having a single database context in your project makes things much easier if you are using dependency injection or Entity Framework migrations.