Обновить запись в L2S и L2E - PullRequest
0 голосов
/ 16 апреля 2010

Мне сказали в L2S, код для обновления и вставки одинаков,

db.InsertOnSubmit(row); 
db.SubmitChanges();

и L2S проверит, является ли это вставкой или обновлением, и будут действовать в фоновом режиме.

Это правда?

Как насчет L2E? Я проверял, похоже, в L2E это не так. Может быть, я сделал что-то не так.

1 Ответ

1 голос
/ 16 апреля 2010

В LINQ to SQL

InsertOnSubmit() 

'Добавляет объект в состоянии отложенной вставки в эту таблицу.'

Принимая во внимание

SubmitChanges() 

' Вычисляет набор измененных объектов для вставки, обновления или удаления и выполняет соответствующие команды для реализации изменений в базе данных .'

Таким образом, Linq to SQL отслеживает ваши изменения и затем использует SubmitChanges для создания необходимых транзакций, которые передадут изменения в вашу базу данных.

LINQ to Entites использует

SaveChanges()

, поскольку объекты в Linq to Entites не используют блокировку для записи в базе данных и поэтому должны быть сохранены, а не внесенные изменения.

Существует полный список различий между L2S и L2E в этом стековом потоке вопрос .

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