Что делает сущностный каркас при обращении к вставленному ключу, который еще не был создан? - PullRequest
0 голосов
/ 19 сентября 2019

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

Во-вторых, каков традиционный (не EF) способ сделать это?Это только работает транзакционно?Как это выглядит для базы данных и почему массовая загрузка выполняется быстрее, чем просто одна вставка за раз?На первый взгляд это не имеет смысла для меня, но, возможно, код базы данных объясняет магию.

Я только недавно обнаружил, что массовая загрузка, подобная этой, при обращении к несуществующим идентификаторам, как-то возможна, и яя пытаюсь понять, как база данных справляется с этим ...

...