2

如何在下面的代码中使对象 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; }       
}
4

1 回答 1

3

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

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

因为 VirtualTerminalId 可以为空,实体框架会将关系注册为可选。

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

于 2013-07-24T15:23:28.473 回答