- Набор данных (в виде строк), которые просто сериализуются/десериализуются, причём эта ериализация должна быть вручную прописана
- Набор связанных сущностей (тут стоит немного подробнее расписать, попробю объяснить на куске кода):
builder
.HasMany(employee => employee.Subordinates)
.WithOne()
.HasForeignKey(employee => employee.ChiefId)
.OnDelete(DeleteBehavior.SetNull);
В данном случае мы настроили one-to-many связь между employee.Subordinates
и employee.ChiefId
, но как именно это будет работать?
Как я уже сказал, EF Core
не воспринимает лист как мы привыкли, и если мы попытаемся добавить в Subordinates
что-либо, эффекта никакого не будет (разве что выкинется ошибка).
Это связано с тем, что EF Core
буквально понимает написанный код следующим образом:
- Каждый сотрудник имеет свой уникальный
Id
, у каждого сотрудника есть аттрибутChiefId
, который связывает сотрудника с его шефом - Тогда лист
Subordinates
- это то, куда надо засовывать все сущности, у которыхChiefId
==Id
нашего сотрудника
Именно так EF Core
воспринимает настроенную связь между сущностями