gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 21:38:54 27 4
gpt4 key购买 nike

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

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com