Если-существует-ОБНОВИТЬ-еще-ВСТАВИТЬ с Linq-to-Entities? - PullRequest
0 голосов
/ 19 апреля 2010

Есть ли способ написать эту же атомарную инструкцию SQL, используя Entities и LinQ?

ЕСЛИ СУЩЕСТВУЕТ (ВЫБЕРИТЕ * ИЗ MyTable WHERE ID = @Id) ОБНОВЛЕНИЕ MyTable SET name = @name ELSE INSERT INTO MyTable (@Id, @name)

или вам нужно вызвать хранимую процедуру из EF?

1 Ответ

0 голосов
/ 19 апреля 2010

Entity Framework отслеживает срок службы объектов:

  • Если объект был инициализирован из запроса, платформа понимает, что запись должна существовать в базе данных, и будет выполнять UPDATE при отправке изменений обратно в базу данных.
  • Если объект был инициализирован в коде, платформа понимает его как «новый» объект и выполняет INSERT при отправке изменений в базу данных.

Если вы хотите, чтобы вызывался один фрагмент SQL, независимо от того, требуется ли операция INSERT или UPDATE, вам нужно будет указать хранимую процедуру.

...