升级到 C# 10 .net 6 现在在构建 Context.cs OnModelCreatingPartial(ModelBuilder modelBuilder) 时出现编译错误;

Posted

技术标签:

【中文标题】升级到 C# 10 .net 6 现在在构建 Context.cs OnModelCreatingPartial(ModelBuilder modelBuilder) 时出现编译错误;【英文标题】:Upgraded to C# 10 .net 6 now getting Compile error when building Context.cs OnModelCreatingPartial(ModelBuilder modelBuilder); 【发布时间】:2021-11-10 21:20:39 【问题描述】:

目前升级到 Net 6 后出现构建错误

错误 CS8795 部分方法“XXXX.OnModelCreatingPartial(ModelBuilder)”必须具有实现部分,因为它具有可访问性修饰符。 XXXX.Domain C:\Users\jbalman\Source\Repos\XXXX.ERM\XXXX.ERM\XXXX.Domain\XXXXDbContext.cs 2520 活动

注意:XXXX 是 PII 信息。

Visual Studio 没有向我展示应该如何重构它,而且我在搜索时似乎在网上找不到任何建议。非常感谢任何帮助。

【问题讨论】:

你有哪个 Visual Studio? 视觉工作室 2022 您可以查看.net 6 docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-6.0/…中的更改内容 【参考方案1】:

我最终使用 EF 生成了一个新的上下文来与我的原始代码进行比较。

因此,我更改了以下内容:

partial void OnModelCreatingPartial(ModelBuilder modelBuilder);

到:

void OnModelCreatingPartial(ModelBuilder modelBuilder);

这解决了错误。我假设这是因为新的 C# 版本存在问题。

【讨论】:

有一个类似的情况,在转换到 .NET 6 和 C# 10 后,我将“private partial void OnModelCreatingPartial”更改为“partial void OnModelCreatingPartial”。确切原因未知,因为我正在做一些项目清理与其他更改一起,但我想分享以防其他人遇到编译器错误。

以上是关于升级到 C# 10 .net 6 现在在构建 Context.cs OnModelCreatingPartial(ModelBuilder modelBuilder) 时出现编译错误;的主要内容,如果未能解决你的问题,请参考以下文章

C# 利用.NET 升级助手将.NET Framework项目升级为.NET 6

C# 利用.NET 升级助手将.NET Framework项目升级为.NET 6

Httpclient在.net core3.1上成功运行,但更新到.net 5中连接超时(System.Net.Sockets.SocketException (10060)) C#

升级到 .NET 6 时,Web 项目引发运行时异常

升级到 .net 6 时托管的 Blazor WASM 身份验证中断

使用 C# 6.0 功能运行 TFS 构建