2015-06-06 4 views
0

У меня есть модель, которая имеет Salesman и Region. Продавец принадлежит региону.Реферируемые объекты не заполняются в коллекции EF6

Salesman.cs

public class Salesman : Employee 
{ 
    public Salesman() 
    { 
     this.Invoices = new List<Invoice>(); 
    } 

    public int? RegionId { get; set; } 

    [ForeignKey("RegionId")] 
    public virtual Region Region { get; set; } 

    public virtual ICollection<Invoice> Invoices { get; set; } 
} 

Salesman наследует Employee с магазинами основным именем, адресом и т.д. данные - что не актуально.

Region.cs

public class Region 
{ 
    public Region() 
    { 
     this.Salesmen = new List<Salesman>(); 
    } 

    [Key] 
    public int Id { get; set; } 

    [Required] 
    public string Name { get; set; } 

    public int? SalesManagerId { get; set; } 

    [ForeignKey("SalesManagerId")] 
    public virtual Salesman SalesManager { get; set; } 

    public virtual ICollection<Salesman> Salesmen { get; set; } 

} 

Проблема, которую я имею что Region.Salesmen не заполняется по ФВ, как это было в других проектах.

Регион населяет штраф в Salesman.Region.

Материал пытался и в проекте

  • Ленивый загрузкой на (я явно включили)
  • Переименование имен свойств, то есть. Торговцы -> Salesmans
  • База данных содержат правильную схему
  • Изменения ICollection к ISet

Я, возможно, полагая, что это, возможно, придется делать с именованием, как коммивояжер -> Продавцы, в отличие от коммивояжера - > Продавцы

Заранее спасибо.

ответ

0

Поэтому я решил это, добавив атрибут к свойству ICollection<Salesman> Salesmen.

Теперь моя модель выглядит следующим образом ...

public class Region 
{ 
    public Region() 
    { 
     this.Salesmen = new List<Salesman>(); 
    } 

    [Key] 
    public int Id { get; set; } 

    [Required] 
    public string Name { get; set; } 

    public int? SalesManagerId { get; set; } 

    [ForeignKey("SalesManagerId")] 
    public virtual Salesman SalesManager { get; set; } 

    [InverseProperty("Region")] 
    public virtual ICollection<Salesman> Salesmen { get; set; } 

} 

Не спрашивайте меня, почему это работает, и почему EF не мог связать его без небольшой помощи .. но это делает.

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