我正在尝试构建我的IRepository接口和具体类EntityFrameworkGenericRepository,但我对DbContext有一个问题。
在EFGenericRepository中的MVC的早期版本中,您将引用EntityFramework并使用DbContext,这就是它。
现在我使用的是具有ASP.NET标识的MVC5,我需要为IdentityDbContext切换DbContext,但这意味着我需要引用ASP.NET标识。
有办法解决这个问题吗?还是完全可以?
构造函数和属性的代码段
public class EntityFrameworkGenericRepository<T> : IGenericRepository<T> where T: class
{
protected IdentityDbContext<ApplicationUser>Context = null;
protected DbSet<T> DbSet
{
get
{
return Context.Set<T>();
}
}
public EntityFrameworkGenericRepository(IdentityDbContext<ApplicationUser> context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
Context = context;
}
这是我的WebAppDbContext:
public class WebAppDbContext : IdentityDbContext<ApplicationUser>
{
public WebAppDbContext()
: base(nameOrConnectionString: "DefaultConnection") { }
public DbSet<User> User { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
}
}
这对我来说很好。你有什么特别的担忧吗?