Как Entity Framework вставляет новые значения? - PullRequest
0 голосов
/ 07 ноября 2010

У меня есть еще один вопрос относительно этого, но я хотел бы разделить их для ясности.

Я столкнулся с проблемой, когда я не мог вставить новую строку в таблицу, потому что в ней был только один столбец, и этот столбец постепенно увеличивался, а PK.

Однако создание нового объекта этого набора в Entity Framework не составило труда.

 var admin = new Administrator {};
context.Administrator.AddObject(admin);
context.SaveChanges();
int adminId = admin.adminId; //This would give me the new value

Как это работает?

1 Ответ

4 голосов
/ 07 ноября 2010

Когда вы фиксируете свои изменения, Entity Framework выполняет INSERT в таблицу, связанную с набором сущностей Администратор, для каждой добавленной сущности.Поскольку PK автоматически увеличивается в базе данных, EF знает, что ему не нужно предоставлять его, но получает его после INSERT.Затем он обновляет сущность «Администратор», теперь он доступен (и база данных сгенерирована). PK.

Это классическое задание реляционного сопоставления объектов. Надеюсь, я понял ваш вопрос?EF для выполнения задания вставки.

insert [dbo].[Entities] default values
select [Id]
  from [dbo].[Entities]
  where @@ROWCOUNT > 0 and [Id] = scope_identity()

Вставляет строку по умолчанию в таблицу, затем выбирает идентификатор новой строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...