在下面的控制台应用程序(.Net Core 2.0)中,
scaffold-dbcontext
创建了以下DbContext
。public partial class MyContext : DbContext
{
public virtual DbSet<Tables> Tables { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured) { optionsBuilder.UseSqlServer(Program.Conn); }
}
protected override void OnModelCreating(ModelBuilder modelBuilder) { .... }
}
在 Main() 方法中(static void Main(string[] args)
),下面的代码var services = new ServiceCollection();
var conn = configuration.GetConnectionString("MySource");
services.AddDbContext<MyContext>(o => o.UseSqlServer(conn)); // Error
你是否遇到了以下运行时错误?
调用 AddDbContext 时使用了配置,但上下文类型“MyContext”仅声明了一个无参数构造函数。这意味着传递给 AddDbContext 的配置将永远不会被使用。
EF Core 2.0
中新增的services.AddDbContextPool()
方法。 - Simon_Weaver