Skip to content

markdown-sect/ef-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Как работают коллекции в EF Core?

EF Core не воспринимает коллекции (в т.ч. листы) как мы привыкли, для него коллекции - это:

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published