Я пытаюсь сопоставить то, что кажется очень распространенным случаем в свободном 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;}
}
Со следующими таблицами:
Идентификатор компании
– целое число
Подразделение:
Идентификатор - int CompanyId int (FK)
Идентификатор сотрудника
– int
Имя – varchar(50)
DivisionId – int (FK)
Если бы таблица Employee имела FK CompanyID, это сопоставление было бы очень простым:
HasMany(c=>c.Employees).WithRequired().HasForeignKey(e=>e.CompanyId);
Однако, поскольку у меня нет прямого FK из таблицы «Сотрудники» в таблицу «Компания», я, похоже, не могу сопоставить свойство «Сотрудники» в объекте «Компания» для отложенной загрузки.
Что мне не хватает?