我确定这里缺少一些小巧的东西。当我尝试构建类库时,出现以下错误:

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()方法。只需使用ctorOnConfiguring()方法即可。


  如果两者都使用,则在提供的选项上执行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");
    //}

    //...
}

10-08 02:16