- Набор данных (в виде строк), которые просто сериализуются/десериализуются, причём эта ериализация должна быть вручную прописана
- Набор связанных сущностей (тут стоит немного подробнее расписать, попробю объяснить на куске кода):
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 воспринимает настроенную связь между сущностями