Required 属性是否对导航有任何影响 属性?

Does the Required attribute have any effect on a navigation property?

我在 EF 数据模型中有以下代码:

[Required]
public IdentityTypeDocument IdentityType { get; set; }

[Required]
[ForeignKey(nameof(IdentityType))]
public int? IdentityTypeId { get; set; }

第一个 Required - 在 IdentityTypeDocument 属性 上与第二个 - int 属性 相比有任何意义吗?

除了评论对话和回答这个问题之外:

[Required] 表示对象必须不为 null,因此对于不可为 null 的类型,此注释没有区别。 对于可空类型,如果导航 属性 或 FK 属性 以这种方式注释没有区别 - 如果 FK 不为空,则导航 属性 必须是具有此的对象id 否则在尝试保存到数据库时会收到错误;如果导航 属性 不为空,ChangeTracking 会将 FK 设置为与其 PK 值相同。

这意味着两个数据注释的意思完全相同,因为它们几乎相互暗示 - 这是假设 属性 被正确配置为 FK/navigation 属性 对应到另一个,并且这两个属性(或相关类型,从那时起无论如何都不会将这种类型的对象保存到数据库中)都没有被明确地排除在模型之外。