IdentityDbContext <applicationuser> vs DbContext for Repository </applicationuser>

时间:2013-11-18 22:04:09

标签: asp.net-mvc entity-framework repository asp.net-identity

我正在尝试构建我的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);
    }
}

1 个答案:

答案 0 :(得分:-1)

这对我来说很好看。您有任何具体问题吗?