gpt4 book ai didi

c# - Required 属性对导航属性有什么影响吗?

转载 作者:行者123 更新时间:2023-12-05 03:08:53 24 4
gpt4 key购买 nike

我在 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 的对象,否则您将在尝试保存时收到错误到数据库;如果导航属性不为 null,ChangeTracking 会将 FK 设置为与其 PK 值相同。

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

关于c# - Required 属性对导航属性有什么影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44498456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com