c# - Entity Framework 核心类库构建给出错误 CS7036

标签 c# .net-core entity-framework-core

我确信我在这里遗漏了一些小而愚蠢的东西。当我尝试构建类库时,出现以下错误:

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微软推出的指南。

我已经为我的代码创建了一个 GitHub 存储库 here有问题的具体文件是 here.

我一次又一次地检查了构造函数,所有其他类似的指南/教程都使用了相同的代码。

我正在使用:

  • EntityFrameworkCore 1.1.2
  • .netcore 1.1

如果有任何其他信息可以提供帮助,请告诉我。

最佳答案

您不需要将 DbContextOptions 传递给构造函数和 OnConfiguring() 方法。只需在 ctorOnConfiguring() 方法中执行即可。

If both are used, OnConfiguring is executed on the supplied options, meaning it is additive and can overwrite options supplied to the constructor argument.+

请参阅此处获取指导:https://learn.microsoft.com/en-us/ef/core/miscellaneous/configuring-dbcontext

应该解决您的问题的示例代码更改(如果您没有从 Startup 注入(inject) DBContextOptions:

public partial class StaticDataContext : DbContext
{
    public StaticDataContext()  {   }

    //...

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite(@"Datasource=sqlite-latest.sqlite");
    }

    //...
}

如果您通过依赖项注入(inject)注入(inject)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");
    //}

    //...
}

关于c# - Entity Framework 核心类库构建给出错误 CS7036,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45525223/

相关文章:

c# - 将 SignalR 与 Azure Service Fabric 结合使用

c# - 应用程序设置界面

c# - LINQ包括搜索时降低性能

c# - 如何在 EF Core 中获取数据库表主键列的列表

c# - Linux 中的 .net 核心 - 构建 C#

c# - ThenInclude 在 EF Core 查询中无法识别

c# - Crystal Reports 与 css .net 冲突

c# - 需要使用扩展方法/查询语法在 LINQ 中进行左外连接

c# - 升级到 .NET Core 3.0 后 "Unable to find package Microsoft.NETCore.App.Host.osx-x64"

c# - 什么时候分配和租用阵列更合适?