看看这个实体:
class EntityA
{
public int Id { get;set; }
public string Name { get;set; }
public int? ClientId { get; set; }
// Navigation properties:
public ClientEntity? Client { get; set; }
}
如您所见,此实体包含一个可选属性:ClientId。这意味着客户端是可选的。在这种情况下,在sql server数据库中ClientId字段将包含NULL。
我正在使用外键的导航属性:这是“Client”属性。当ClientId为空时,Client也应该为空。
这就是为什么我宣布:客户端属性的“ClientEntity?”类型。
但是我看到有人在同样的情况下声明“ClientEntity”(不可空)。但是我不明白他们如何在这种情况下操作空客户端...
你知道吗?
谢谢
1条答案
按热度按时间xlpyo6sf1#
对于在为其项目启用可为空性时也遇到此问题的任何人,导航属性不应为可为空。
根据微软的规定,
包含对多个相关实体的引用的集合导航应始终不可为空。空集合意味着不存在相关实体,但列表本身不应为空。
https://learn.microsoft.com/en-us/ef/core/miscellaneous/nullable-reference-types
因此,编写此代码的解决方案是: