Я только что обнаружил массовую загрузку Entity Framework, и это, честно говоря, похоже на магию.Базовый пример: у меня есть сущность ParentPart
и сущность ChildPart
, где ChildPart
ссылается на PRIMARY KEY Id
из ParentPart
.Если я запускаю вставку сущности ParentPart
(dbContext.Add(ParentPart)
), я могу сразу ссылаться на ParentPart.Id
при создании сущности ChildPart
и даже вставлять эту сущность без проблем dbContext.Add(ChildPart)
.Как работает ссылка на поле ParentPart.Id
, когда оно еще не создано в базе данных?
Во-вторых, каков традиционный (не EF) способ сделать это?Это только работает транзакционно?Как это выглядит для базы данных и почему массовая загрузка выполняется быстрее, чем просто одна вставка за раз?На первый взгляд это не имеет смысла для меня, но, возможно, код базы данных объясняет магию.
Я только недавно обнаружил, что массовая загрузка, подобная этой, при обращении к несуществующим идентификаторам, как-то возможна, и яя пытаюсь понять, как база данных справляется с этим ...