合并成一个DataContext

本文关键字:一个 DataContext 合并 | 更新日期: 2023-09-27 18:13:28

我正在使用asp.net MVC 5,我有两个上下文,它给我的问题,当我在Azure中部署我的应用程序,因为我使用存储库模式,所以我想合并到一个DataContext。

这是我的Applicationcontext在身份模型类

public class DataContext : IdentityDbContext<ApplicationUser>
{
    public DataContext()
        : base("SurgeryConn")
    {
    }
}

这是我的DataContext

公共类DataContext: IdentityDbContext, IDbContext{

    public DataContext()
        : base("SurgeryConn")
    {
    }
    //#region Properties

    public DbSet<Supplier.Supplier> Supplier { get; set; }
    public DbSet<Dispensary.Dispensary> Dispensary { get; set; }
    public DbSet<Biochemistry> Biochemistry { get; set; }

    //#endregion
    public new IDbSet<TEntity> Set<TEntity>() where TEntity : class
    {
        return base.Set<TEntity>();
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
    }

合并成一个DataContext

将DbSets移动到第一个上下文中,如果您使用存储库模式,您可能需要将IDContext放在第一个上下文中,如下所示:

 public class DataContext : IdentityDbContext<ApplicationUser>,IDbContext
{
    public DataContext()
        : base("SurgeryConn")
    {
    }
    public DbSet<Supplier.Supplier> Supplier { get; set; }
    public DbSet<Dispensary.Dispensary> Dispensary { get; set; }
    public DbSet<Biochemistry> Biochemistry { get; set; }
  public new IDbSet<TEntity> Set<TEntity>() where TEntity : class
    {
        return base.Set<TEntity>();
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
    }
}