ca9*_*3d9 34 c# entity-framework entity-framework-core .net-core
在以下控制台应用程序(.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) { .... }
}
Run Code Online (Sandbox Code Playgroud)
在Main()(static void Main(string[] args))中,代码如下
var services = new ServiceCollection();
var conn = configuration.GetConnectionString("MySource");
services.AddDbContext<MyContext>(o => o.UseSqlServer(conn)); // Error
Run Code Online (Sandbox Code Playgroud)
得到以下运行时错误?
使用配置调用AddDbContext,但上下文类型"MyContext"仅声明无参数构造函数.这意味着永远不会使用传递给AddDbContext的配置
Cod*_*und 62
正如错误所说,如果你配置你的MyContext通过AddDbContext那么你需要添加一个接收类型参数的构造函数DbContextOptions<MyContext>到你的MyContext类,如下所示
public MyContext(DbContextOptions<MyContext> options)
: base(options)
{ }
Run Code Online (Sandbox Code Playgroud)
如果不这样做,ASP.Net Core将无法注入您设置的配置AddDbContext.
| 归档时间: |
|
| 查看次数: |
15355 次 |
| 最近记录: |