我应该实例化扩展 DbContext 的 类 吗?

Am I supposed to instantiate my classes that extend DbContext?

使用代码优先迁移和实体,class

public partial class MyDb : DbContext
{
    public MyDb()
        : base("name=mydb")
    {
    }

    public virtual DbSet<BannedIP> BannedIPs { get; set; }
    public virtual DbSet<GameLog> GameLogs { get; set; }
    public virtual DbSet<IP> IPs { get; set; }
    public virtual DbSet<Score> Scores { get; set; }

    protected override void OnModelCreating ( DbModelBuilder modelBuilder )
    {
        modelBuilder.Entity<GameLog>()
            .Property(e => e.logText)
            .IsUnicode(false);

        modelBuilder.Entity<IP>()
            .HasMany(e => e.BannedIPs)
            .WithRequired(e => e.IP)
            .WillCascadeOnDelete(false);

        modelBuilder.Entity<Score>()
            .Property(e => e.name)
            .IsUnicode(false);
    }
}

是为了镜像我现有的数据库而生成的。我的问题是为什么它会生成一个构造函数

    public MyDb()
        : base("name=mydb")
    {
    }

为什么我需要制作多个 class 实例?它不能是静态的 class 因为我用它做的只是在单个数据库上进行事务吗?我只是想弄清楚背后的原因......

DbContext 跟踪它看到的每个实体。如果您为所有操作和用户重复使用相同的上下文,则此信息会越来越多。 ASP.NET 中普遍推荐的方法是为每个请求使用一个 DbContext 实例,以防止事情变得如此之大以至于导致您的应用程序池崩溃。