Как обновить запись без повторного выбора этой записи в ADO.NET Entity Framework? - PullRequest
4 голосов
/ 19 мая 2010

Привет всем, что я делаю что-то вроде этого -

void update(ClasstoUpdate obj)//obj is already having values to update...
{
  var data= (from i in Entityobject.ClasstoUpdate 
            where obj.Id==i.Id
            select i).FirstorDefault();
  data.Name="SomeCoolName";
  EntityObject.SaveChanges();
}

Я хочу выполнить обновление без повторных запросов с использованием идентификатора, есть ли способ, которым я просто передаю обновленный объект в инфраструктуру ADO.NET Entity, и он обновляет его. Извините, если что-то здесь отсутствует, но это как я делал это, задаваясь вопросом, есть ли простой способ обновления. Спасибо.

1 Ответ

6 голосов
/ 19 мая 2010

Простой способ обновить объект - получить его, изменить и отправить изменения, что вы уже делаете.

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

Третий способ - обновить объект, создав строку SQL, которая обновляет объект непосредственно в базе данных без его извлечения. Однако я бы не рекомендовал это делать.

Примечание: не забывайте проверять нулевое значение в вашей функции. Если вы знаете, что возвращаемое значение FirstOrDefault никогда не будет нулевым, вам следует использовать First. Вы также можете рассмотреть возможность использования Single вместо First.

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