2015-10-08 3 views
0

Я пытаюсь выполнить обновление через LINQ 2 SQL в моем приложении asp.net.Установить старый объект на новый объект Linq 2 SQL

Сначала мне нужно получить старое значение из базы данных, а затем применить изменения, а затем выполнить db.SubmitChanges(); для применения обновления.

Как установить старый объект на новый объект без необходимости определять все новые значения?

Например:

Как я могу сделать

OldUser = NewUser; 

Вместо:

OldUser.FirstName = NewUser.FirstName 
OldUser.LastName = NewUser.LastName 
OldUser.Phone = NewUser.Phone 
OldUser.Email = NewUser.Email 
OldUser.Gender = NewUser.Gender 
... 
+0

Возможный дубликат [Linq to sql, копирование исходного объекта в новый и сохранение] (http://stackoverflow.com/questions/2178080/linq-to-sql-copy- original-entity-to-new-one-and-save) –

ответ

0

если у вас есть тип: Пользователь

OldUser = new User(NewUser); db.SubmitChanges()

создайте конструктор, который сделает то, что вы описали

+0

Итак - нужно ли писать конструктор, который устанавливает каждую запись отдельно? Нет значения по умолчанию (например, с целым числом или строкой, которая перезаписывает объект)? – Tjekkles

+1

Это создаст нового пользователя, а не обновит его. Это может работать, если это был метод вместо конструктора. – juharr

+0

Моя ошибка. Разумеется, когда вы выполняете какую-либо форму SaveOrUpdate(), если RecordId совпадает с существующей версией, она будет идти по пути обновления? –