Прежде всего, я использую Entity Framework Core (в NET Core 3.1) с подходом «сначала код».
Представьте, что у меня есть пара таких сущностей:
public class Employee
{
[Key]
[Required]
public int Id { get; set; }
[Required]
[ForeignKey(nameof(Department))]
public int DepartmentId { get; set; }
public virtual Department Department { get; set; }
}
public class Department
{
[Key]
[Required]
public int Id { get; set; }
[Required]
[ForeignKey(nameof(Manager))]
public int ManagerId { get; set; }
public virtual Employee Manager { get; set; }
}
С семантикой, что каждый Employee
принадлежит Department
, а каждый Department
имеет Employee
в качестве менеджера.
Я хотел бы заполнить базу данных некоторыми значениями, скажем «Генеральный директор» компании, которая будет принадлежать «Дирекции» отделу, менеджером которого он должен быть; однако, когда я пытаюсь выполнить это, я сталкиваюсь с ошибкой.
Могу ли я что-нибудь сделать, чтобы вставить одновременно Employee
и Department
при заполнении базы данных с помощью экземпляр ModelBuilder
? Я знаю, что есть способ отключить ограничения внешнего ключа, но поскольку это сначала код, я не уверен, как это сделать.
Заранее спасибо.