EF Core 流利的可空警告 API

Nullable warning with EF Core fluent API

我在 VS2022 中启用了可为空。

我看不出这个可为 null 的警告的有效解决方案是什么。

builder.OwnsOne(o => o.CreatedByUser, createdByUser => {
createdByUser.Property(userRef => userRef.UserId)
  .HasColumnName("CreatedByUser");
});

改变

userRef.UserId

userRef?.UserId

会清除错误,但这是一个流畅的 API 定义,这没有任何意义(我相信)。

我可以添加警告抑制,但这同样是垃圾。

请问这个警告的适当解决方案是什么?

EFC 6.0 之前的许多流畅(和其他)API 没有 NRT 注释,因此您必须抑制 NRT 警告或使用 null 宽容技巧。

EFC 6.0已修复,参考:What's New in EF Core 6.0 - EF Core annotated for C# nullable reference types:

GitHub Issue: #19007.

The EF Core codebase now uses C# nullable reference types (NRTs) throughout. This means that you will get the correct compiler indications for null usage when using EF Core 6.0 from your own code.