Обновление записи в Entity Framework Core - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть существующая запись из базы данных, которую я извлек с помощью Entity Framework:

 MyDataObject myExistingObject= _dbContext.data
   .Where(s => s.Id == myId).FirstOrDefaultAsync();   

Внешне я получил еще одну MyDataObject newDataObjectForSameRow, которая содержит обновленную информацию для myExistingObject - все поля кроме первичного ключа , который изначально установлен в 0 в newDataObjectForSameRow.

Как я могу дать команду Entity Framework «заменить строку, которая в настоящее время myExistingObject, на newDataObjectForSameRow, однако сохраняя тот же первичный ключ»?

1 Ответ

2 голосов
/ 19 февраля 2020

Попробуйте использовать следующий код:

newDataObjectForSameRow.Id = myId;
MyDataObject myExistingObject = _dbContext.data.Where(s => s.Id == myId).FirstOrDefaultAsync();
_dbContext.Entry(myExistingObject).CurrentValues.SetValues(newDataObjectForSameRow);
_dbContext.SaveChanges();
...