Я пытаюсь отобразить то, что кажется очень распространенным случаем в плавном API EF, и попало в стену. У меня есть следующие классы:
public class Company
{
public int Id { get; set; }
public virtual List<Division> Divisions { get; set; }
public virtual List<Employee> Employees { get; set; }
}
public class Division
{
public int Id { get; set; }
public virtual List<Employee> Employees { get; set; }
public virtual Company Company { get; set; }
}
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public virtual Division Division {get; set;}
}
Со следующими таблицами:
Компания
Id - int
Отдел:
Id - int
CompanyId int (FK)
Employee
Id - int
Имя - варчар (50)
DivisionId - int (FK)
Если бы таблица Employee имела CompanyID FK, это сопоставление было бы очень простым:
HasMany(c=>c.Employees).WithRequired().HasForeignKey(e=>e.CompanyId);
Однако, поскольку у меня нет прямого FK из таблицы Employee в таблицу Company, я не могу отобразить свойство Employees в объекте Company для отложенной загрузки.
Чего мне не хватает?