Я новичок в EF.
Как правильно делается обновление данных в БД? Например есть таблица, в ней каждая запись имеет уникальный ключ.
На вход программы поступает новая строка с уникальным ключем.
Как делается нечто похожее на Insert Or Update? Или таки хранимую процедуру писать?
Здравствуйте, 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();
Здравствуйте, 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>Если да, то скорее всего, придется писать хранимку.
Да именно так и хотел.
Здравствуйте, Аноним, Вы писали:
sto>>Я правильно понял: вы создаете новый объект, присваиваете ему уникальный идентификатор, потом хотите с помощью EF сделать так, что если в таблице идентификатор отсутствует, то выполнялся бы INSERT, а если есть такой идентификатор — то выполнялся бы UPDATE?
А>Да именно так и хотел.
Плохая практика — если перед сохранением записи одним пользователем другой ее удалил, то она "воскреснет". Для CRUD операций делайте отдельные ХП — чем проще, тем меньше потенциальных ошибок.