我确定这里缺少一些小巧的东西。当我尝试构建类库时,出现以下错误:
StaticDataHelper.cs(13,16): error CS7036: There is no argument given that corresponds to the required form
al parameter 'options' of 'StaticDataContext.StaticDataContext(DbContextOptions<StaticDataContext>)' [C:\U
sers\bryce\Google Drive\dotnet\libraries\EveStaticData\EveStaticData.csproj]
相关的代码块如下所示:
public StaticDataContext(DbContextOptions<StaticDataContext> options)
:base(options)
{ }
我试图遵循this微软发布的指南。
我已经创建了代码here的GitHub存储库,相关的特定文件为here.
我已经一遍又一遍地检查了构造函数,并且所有其他类似的指南/教程都使用了相同的代码。
我正在使用:
EntityFrameworkCore 1.1.2
.netcore 1.1
让我知道是否还有其他信息可以帮助您。
最佳答案
您无需将DbContextOptions
传递给构造函数和OnConfiguring()
方法。只需使用ctor
或OnConfiguring()
方法即可。
如果两者都使用,则在提供的选项上执行OnConfiguring,
表示它是可加性的,可以覆盖提供给
构造函数参数。
请参阅此处以获得指导:https://docs.microsoft.com/en-us/ef/core/miscellaneous/configuring-dbcontext
可以解决问题的示例代码更改(如果您不从Startup
注入DBContextOptions,则:
public partial class StaticDataContext : DbContext
{
public StaticDataContext() { }
//...
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite(@"Datasource=sqlite-latest.sqlite");
}
//...
}
如果要通过依赖项注入来注入
DbContextOptions
,请使用以下命令:public partial class StaticDataContext : DbContext
{
public StaticDataContext(DbContextOptions<StaticDataContext> options) : base(options)
{
}
//...
//Removed as it's being injected in to the ctor via DI
//protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
//{
// optionsBuilder.UseSqlite(@"Datasource=sqlite-latest.sqlite");
//}
//...
}