UseSqlServer缺失和冲突的引用?

问题描述 投票:0回答:1

我试图在.NET Core 2.1 DAL类库中遵循Entity Framework Core video。在DbContext.OnCofiguring中放置以下代码:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        base.OnConfiguring(optionsBuilder);

        optionsBuilder.UseSqlServer("Server*.");
    }

问题是缺少UseSQLServer?从this建议添加Microsoft.EntityFrameworkCore.SqlServer nuget。这样做时,我得到了一些我不知道如何解决的版本冲突:

严重级代码描述项目文件行抑制状态错误CS1061'DbContextOptionsBuilder'不包含'UseSqlServer'的定义,并且找不到可接受的扩展方法'UseSqlServer'接受类型'DbContextOptionsBuilder'的第一个参数(您是否缺少using指令或汇编引用?)DataAccessLayer

--

严重级代码说明项目文件行抑制状态错误包还原失败。回滚'DataAccessLayer'的包更改。

--

严重级代码说明项目文件行抑制状态错误NU1605检测到的包降级:Microsoft.Extensions.Configuration从2.2.0到2.1.1。直接从项目引用包以选择不同的版本。 DataAccessLayer - > Microsoft.EntityFrameworkCore.SqlServer 2.2.3 - > Microsoft.EntityFrameworkCore.Relational 2.2.3 - > Microsoft.EntityFrameworkCore 2.2.3 - > Microsoft.Extensions.Logging 2.2.0 - > Microsoft.Extensions.Configuration.Binder 2.2。 0 - > Microsoft.Extensions.Configuration(> = 2.2.0)DataAccessLayer - > Microsoft.Extensions.Configuration(> = 2.1.1)DataAccessLayer

--

严重级代码说明项目文件行抑制状态错误NU1605检测到的包降级:Microsoft.Extensions.DependencyInjection从2.2.0到2.1.1。直接从项目引用包以选择不同的版本。 DataAccessLayer - > Microsoft.EntityFrameworkCore.SqlServer 2.2.3 - > Microsoft.EntityFrameworkCore.Relational 2.2.3 - > Microsoft.EntityFrameworkCore 2.2.3 - > Microsoft.Extensions.DependencyInjection(> = 2.2.0)DataAccessLayer - > Microsoft.Extensions。 DependencyInjection(> = 2.1.1)DataAccessLayer

--

我怀疑该项目使用了几个nuget包,其中一些是引用另一个nuget或dll的不同版本。

它建议直接引用一个包?这是否意味着我应该手动引用一个DLL?我从哪里获得dll?

c# entity-framework nuget
1个回答
0
投票

NU1605的默认严重性是警告,因为您将其视为错误,这意味着您的项目已选择将错误视为警告。

包降级的原因可能是由于NuGet's nearest-wins rule。避免降级的唯一方法是将PackageReference添加到项目的降级包中,这样您选择的版本总是最接近,瞬态依赖项永远不会降级它。

否则,您可以通过关闭“将所有警告视为错误”并仅列出您希望视为错误的特定警告来停止自己在脚中拍摄。或者,将NU1605添加到要禁止的警告列表中(csproj中的<NoWarn>)。

© www.soinside.com 2019 - 2024. All rights reserved.