[EF] SaveOrUpdate
От: Vladimir256  
Дата: 16.03.10 07:53
Оценка:
Я новичок в EF.
Как правильно делается обновление данных в БД? Например есть таблица, в ней каждая запись имеет уникальный ключ.
На вход программы поступает новая строка с уникальным ключем.
Как делается нечто похожее на Insert Or Update? Или таки хранимую процедуру писать?
Re: [EF] SaveOrUpdate
От: Аноним  
Дата: 16.03.10 08:08
Оценка: 2 (1)
Здравствуйте, Vladimir256, Вы писали:

V>Я новичок в EF.

V>Как правильно делается обновление данных в БД? Например есть таблица, в ней каждая запись имеет уникальный ключ.
V>На вход программы поступает новая строка с уникальным ключем.
V>Как делается нечто похожее на Insert Or Update? Или таки хранимую процедуру писать?

var context = new Model1Entities();
var contact = Contact.CreateContact
(0, "Camey", "Combs", DateTime.Now, DateTime.Now);
var address = new Address();
address.Street1 = "One Main Street";
address.City = "Olympia";
address.StateProvince = "WA";
address.AddressType = "Business";
address.ModifiedDate = DateTime.Now;
//join the new address to the contact
address.Contact = contact;
//add the new graph to the context
context.AddToContacts(contact);
context.SaveChanges();

После этого новая строка уже есть в БД.
Re: [EF] SaveOrUpdate
От: sto Украина http://overstore.codeplex.com
Дата: 16.03.10 10:11
Оценка:
Здравствуйте, Vladimir256, Вы писали:

V>Я новичок в EF.

V>Как правильно делается обновление данных в БД? Например есть таблица, в ней каждая запись имеет уникальный ключ.
V>На вход программы поступает новая строка с уникальным ключем.
V>Как делается нечто похожее на Insert Or Update? Или таки хранимую процедуру писать?

Я правильно понял: вы создаете новый объект, присваиваете ему уникальный идентификатор, потом хотите с помощью EF сделать так, что если в таблице идентификатор отсутствует, то выполнялся бы INSERT, а если есть такой идентификатор — то выполнялся бы UPDATE?

Если да, то скорее всего, придется писать хранимку.
There is no such thing as the perfect design.
Re[2]: [EF] SaveOrUpdate
От: Аноним  
Дата: 16.03.10 13:29
Оценка:
Здравствуйте, sto, Вы писали:

sto>Здравствуйте, Vladimir256, Вы писали:


V>>Я новичок в EF.

V>>Как правильно делается обновление данных в БД? Например есть таблица, в ней каждая запись имеет уникальный ключ.
V>>На вход программы поступает новая строка с уникальным ключем.
V>>Как делается нечто похожее на Insert Or Update? Или таки хранимую процедуру писать?

sto>Я правильно понял: вы создаете новый объект, присваиваете ему уникальный идентификатор, потом хотите с помощью EF сделать так, что если в таблице идентификатор отсутствует, то выполнялся бы INSERT, а если есть такой идентификатор — то выполнялся бы UPDATE?


sto>Если да, то скорее всего, придется писать хранимку.

Да именно так и хотел.
Re[3]: [EF] SaveOrUpdate
От: BillyBones3  
Дата: 17.03.10 04:39
Оценка:
Здравствуйте, Аноним, Вы писали:

sto>>Я правильно понял: вы создаете новый объект, присваиваете ему уникальный идентификатор, потом хотите с помощью EF сделать так, что если в таблице идентификатор отсутствует, то выполнялся бы INSERT, а если есть такой идентификатор — то выполнялся бы UPDATE?


А>Да именно так и хотел.


Плохая практика — если перед сохранением записи одним пользователем другой ее удалил, то она "воскреснет". Для CRUD операций делайте отдельные ХП — чем проще, тем меньше потенциальных ошибок.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.