【发布时间】:2022-12-05 07:04:11
【问题描述】:
看看这个实体:
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。这意味着客户端是可选的。在这种情况下,ClientId 字段在 sql server 数据库中将包含 NULL。
我正在使用外键的导航属性:这是“客户端”属性。当 ClientId 为 null 时,Client 也应该为 null。
这就是为什么我声明:“ClientEntity?”为 Client 属性键入。
但我看到有人在同样的情况下声明“ClientEntity”(不可为空)。 但我不明白他们如何在这种情况下操纵空客户端......
任何想法 ?
谢谢
【问题讨论】:
-
想象一下没有启用“可空引用类型”的项目——这就是你所看到的。如果它适合你 - 继续。
-
我想了解:我已尝试禁用“可为空的引用类型”并且它可以正常工作:我可以将 null 放入不可为空的对象中。这怎么可能 ?谢谢
-
不是 EF Core 及其约定的超级专家。但可能是因为 FK
ClientId可以为空。
标签: entity-framework linq