使用代码优先迁移和实体,类
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")
{
}
为什么我需要创建这个类的多个实例?它不是一个静态类,因为我所做的就是在一个数据库上进行交易吗?我只想弄清楚背后的原因......
答案 0 :(得分:0)
DbContext跟踪它看到的每个实体。如果您为所有操作和用户重复使用相同的上下文,则此信息将增长和增长。 ASP.NET中一般推荐的方法是每个请求使用一个DbContext实例来防止事情变得如此之大,以至于它会导致应用程序池崩溃。