使用配置调用AddDbContext,但上下文类型“MyContext”仅声明无参数构造函数?
在以下控制台应用程序(.Net core 2.0)中, scaffold-dbcontext
创建了以下DbContext
public partial class MyContext : DbContext { public virtual DbSet 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(o => o.UseSqlServer(conn)); // Error
得到以下运行时错误?
使用配置调用AddDbContext,但上下文类型“MyContext”仅声明无参数构造函数。 这意味着永远不会使用传递给AddDbContext的配置
正如错误所说,如果您通过AddDbContext
配置AddDbContext
那么您还需要将一个接收类型为DbContextOptions
的参数的构造函数添加到MyContext
类中,如下所示
public MyContext(DbContextOptions options) : base(options) { }
如果不这样做,ASP.Net Core将无法注入您使用AddDbContext
设置的配置。
- 如何在dotnet核心中动态加载程序集
- .NET Core 2.0 RSA PlatformNotSupportedException
- 如何添加通用dependency injection
- 如何在.NET Core中从流加载程序集
- 在点网核心中使用外部.dll
- 使用Novell.Directory.Ldap.NETStandard库进行C#netcore ldap身份validation
- .NETentity framework核心
- Docker在VS中运行但在发布到AWS时出错? 错误CS5001:程序不包含适用于入口点的静态“主”方法
- 通过命令行构建.NET Core应用程序,以便它可以在未安装.NET Core的计算机上运行