实体框架具有可选的数据注释

本文关键字:数据 注释 框架 实体 | 更新日期: 2023-09-27 18:24:44

如何在下面的代码中使对象VirtualTerminal可选?我必须删除VirtualTerminal并只使用VirtualTerminalId吗?

[Table("Computer")]
public    class Computer :Device
{
    //public int Id { get; set; }
    public string OperatingSystem { get; set; }
    public string OS_LicenseKey { get; set; }
    public VirtualTerminal VirtualTerminal { get; set; }
    public int? VirtualTerminalId { get; set; }       
}

实体框架具有可选的数据注释

明确指定可选关系应该是不必要的。实体框架约定应将VirtualTerminalId检测为关系的外键,或者您可以在VirtualTerminal导航属性上使用ForeignKey数据注释:

[ForeignKey("VirtualTerminalId")]
public VirtualTerminal VirtualTerminal { get; set; }

由于VirtualTerminalId可以为null,实体框架将把关系注册为可选关系。

这里和这里都有很好的解释。