Tim
Tim

Reputation: 7431

using same dbContext for Identity and other db entities

I have an application which uses EntityFramework edmx models and i want to be able to use the same dbContext for my Identity classes and the entity classes. Someone has raised a Similar Query but i am unable to get them to be compatible.

ive changed the class definition in the EF context class as below

    public partial class MyDbContext : IdentityDbContext<AspNetUser>
    {
    }

and my identity user as

public partial class AspNetUser : IdentityUser
{
}

but i get an error when i try to login or register

The entity type AspNetUser is not part of the model for the current context

Upvotes: 7

Views: 6630

Answers (2)

user1089766
user1089766

Reputation: 627

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.

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.

Upvotes: 3

Kris Ivanov
Kris Ivanov

Reputation: 10598

I recommend using those dbContext separate, due to async nature of how identity works. You want to have absolute control over your application context.

For that reason I usually inject the identity dbContext by using the same connection from the application context, but there are two separate instances.

Also if you ever wanted to have your application dbContext anything other than code first it will not be possible to merge with the identity dbContext.

Upvotes: 2

Related Questions