2013-07-24 3 views
2

Как сделать объект VirtualTerminal необязательным в коде ниже? Нужно ли мне удалять VirtualTerminal и использовать VirtualTerminalId?Entity Framework HasOptional In Data Аннотации

[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; }  
} 
+0

Не является обязательным таким образом? –

ответ

3

Явное указание необязательных отношений должно быть ненужным. Entity Framework конвенция должна обнаруживать VirtualTerminalId в качестве внешнего ключа для отношений, или вы можете использовать аннотацию ForeignKey данных через свойство навигации для виртуального:

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

Поскольку VirtualTerminalId обнуляемый, Entity Framework будет регистрировать отношения как опция.

Есть хорошие объяснения here и here.

Смежные вопросы