我知道这在过go 是一个问题,因为您可以在网络和SO上搜索so many questions有关从EF Core模型获取警告的信息.今天我第一次使用EF Core for .NET 8,我刚刚意识到警告不再存在:

public class AppDbContext : DbContext
{

    public DbSet<DbAccount> Accounts { get; set; }

}

public class MyClass
{

    // The line below still receives this warning:
    // Warning CS8618 Non-nullable property 'Accounts' must contain a non-null value when exiting constructor.Consider declaring the property as nullable:
    public DbSet<DbAccount> Accounts { get; set; }

}

enter image description here

有趣的是,它跳过了DbContext而不是DbSet类型本身的成员,正如您从上面的例子中可以看到的那样,我自己的类仍然收到CS 8618警告.

我try 过阅读DbContext甚至DbSet的反编译代码,但找不到任何特别的地方.EF Core团队如何做到这一点?我可以以某种方式将其应用到我自己的类中吗(例如POCO杨森类)?

推荐答案

压制Warning CS8618是通过EFCore.Analyzers包完成的.

判断此类分析仪的源代码 UninitializedDbSetDiagnosticSuppressor

Csharp相关问答推荐

c#处理大量tcp连接

将.NET 8程序集加载到Matlab R2023a中时出现问题

从C#重新启动Shell脚本时处理错误?

System.Text.Json:反序列化返回为空数组的字典时出错

并行令牌更新

(乌龙)1&#比c#中的UL&#慢吗?

Blazor WebApp:原始异常:AADSTS700025:客户端是公共的,因此既不应显示客户端,也不应显示客户端

使用Orleans进行的单元测试找不到接口的实现

Docker Container中的HttpRequest后地址不可用

在C#中反序列化/序列化具有混合元素顺序的XML时出现问题

如何将端点(或с匹配请求并判断其路径)添加到BCL?

EF核心区分大小写的主键

HttpClient SendAsync与多线程环境中的ArchiveZip

在implementationFactory中避免循环依赖

VS 2022与VS 2019:如何/为什么创建额外的任务?

Blazor:搜索框在第一次搜索时不搜索

如何使用ODP.NET C#设置Oracle会话时间长度限制

毛伊岛.NET 8图片不再适合按钮

ASP.NET Core 8 Web API:如何添加版本控制?

如何对正方形格线进行对角分组