Как сделать, чтобы Entity Framework (3.5) пропустил выбор значения идентичности после вставки? - PullRequest
1 голос
/ 08 февраля 2011

У меня есть сущность, сопоставленная с таблицей базы данных с автоматически сгенерированным столбцом идентификаторов.
После создания нового объекта и вызова SaveChanges() EF выполняет запрос вставки, который также извлекает новое значение идентификатора для вновь вставленной записи.

Иногда меня не волнует, что является новым значением (например, я вставляю новую запись в журнал, и меня не волнует добавленное значение идентификации).
Есть ли способ заставить EF не запрашивать это значение?

Спасибо
Итай

1 Ответ

3 голосов
/ 08 февраля 2011

Файл EDMX определяет такое автоматически сгенерированное свойство с атрибутом StoreGeneratedPattern="Identity".Вы должны изменить EDMX напрямую и удалить этот атрибут как из SSDL (так и из части CSDL, вероятно, также).Изменение значения из конструктора приведет к изменению только той части CSDL, которая не отвечает за генерацию SQL.Проблема заключается в том, что после каждого обновления из базы данных ваш SSDL будет снова содержать этот атрибут, поскольку идентификатор определяется в базе данных.

Редактировать:

Предыдущее предложение было теоретическим.На самом деле я думаю, что это не сработает, потому что, если вы не определите столбец в EDMX как идентификатор, он отправит его фактическое значение в базу данных.В базе данных это вызовет исключение, потому что вы попытаетесь вставить значение в столбец идентификаторов без установки вставки идентификатора.

...