实体框架具有可选的数据注释
本文关键字:数据 注释 框架 实体 | 更新日期: 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,实体框架将把关系注册为可选关系。
这里和这里都有很好的解释。