我正在尝试构建我的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);
}
}
答案 0 :(得分:-1)
这对我来说很好看。您有任何具体问题吗?