У меня есть таблицы Cars и CarDescriptions
автомобили: IDCar (интервал, PK, автоинкремент) carsDesciptions (IDDescription, Заголовок (nvarchar), Содержание (nvarchar), idCar (интервал, FK)
В приложении я добавляю автомобили и редактирую существующие.
Мои проблемы:
1. Как сохранить измененный Автомобиль с описаниями в базе данных??
У меня есть идентификатор Автомобиля, и у меня есть идентификатор Описаний
Класс CarDescirption не имеет никакого пула как IsChanged, таким образом,
Я не хочу делать что-то как:
запись должна быть обновлена, если находится в таблице, и вставлен, если не существует в таблице
У него лучшая перфомашина:
UPDATE Table1 SET (...) WHERE Column1='SomeValue'
IF @@ROWCOUNT=0
INSERT INTO Table1 VALUES (...)
Вы захотите сделать IF Сначала СУЩЕСТВУЕТ, чтобы проверить, существует ли запись в таблице. Если это не так, ВСТАВЬТЕ новую машину, иначе ОБНОВИТЕ существующую запись.
Первый: http://www.w3schools.com/sql/default.asp
Второй: http: // weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
В SqlServer 2008 есть команда UPSERT, которая делает именно это. Я не пробовал.
возможно, что-то подобное с некоторыми изменениями будет работать
IF EXISTS (SELECt * FORM carsdescriptions WHERE IDCar = @IDCar )
UPDATE carsdescriptions
SET Header = @Header, Content = @Content
WHERE IDCar = @IDCar
ELSE
INSERT INTO carsdescriptions (IDCar, Header, Content)
VALUES (@IDCar, @Header, @Content)
Посмотрите и эту статью, она даст вам больше информации