gpt4 book ai didi

c# - HasOptional 对应的 DataAnnotation 属性

转载 作者:行者123 更新时间:2023-11-30 15:05:56 25 4
gpt4 key购买 nike

代码优先的 Fluent API 的 HasOptional 方法是否有对应的 DataAnnotation 属性?

我想用属性标记我的属性,而不是使用流畅的 API。

这是我当前的模型和 OnModelCreating 代码:

public class Employee
{
#region Properties

public int EmployeeID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }

public int? ManagerID { get; set; }
public Employee Manager { get; set; }

#endregion
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>().
HasOptional(e => e.Manager).
WithMany().
HasForeignKey(m => m.ManagerID);
}

谢谢

最佳答案

不,这样的属性不存在(与 [Required] 属性相反)。我认为原因是没有必要,因为

  • 您的模型根本不需要映射,因为约定应该检测外键并且关系是可选的(因为 FK 属性可以为 null)
  • 如果您的模型中没有外键属性,则关系始终是可选的,因为默认情况下,没有公开外键的导航引用始终是可选的。这里 [Required] 属性对于建立必需关系是必需的。
  • 如果您的外键属性不可为空,则不允许存在可选关系。

因此,似乎不需要这样的属性(除非可能在类定义中使可选关系显式化,但在属性上方的注释会做同样的事情)。

关于c# - HasOptional 对应的 DataAnnotation 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8489869/

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