Entity Framework 4.2: функция вставки для таблиц без ПК - PullRequest
0 голосов
/ 29 декабря 2011

В Entity Framework 4.2 я пытаюсь вставить значение в таблицу, в которой нет PK.EF выдает мне следующую ошибку:

Невозможно обновить EntitySet 'ConditionTypesForWebApplications', поскольку у него есть DefiningQuery и в элементе отсутствует элемент для поддержки текущей операции.

Из приведенного ниже обсуждения я понял, что это можно изменить, отредактировав файл edmx, но это не лучший случай, когда вы работаете с классом DbContext.

Как обновить таблицу с внешним ключом для другой таблицы в ADO.Net Entity Model?

Есть ли лучший способ включить это?

1 Ответ

1 голос
/ 29 декабря 2011

То же самое для DbContext с EDMX (DbContext без EDMX вообще не поддерживает объекты без ключей). Объект без ключа доступен только для чтения, если вы не измените файл EDMX вручную (имейте в виду, что любая модель обновления из базы данных удалит ваши изменения, если вы не купите более продвинутые инструменты для редактирования EDMX), или вы создадите хранимую процедуру и отобразите ее, чтобы вставить функцию объекта .

Короче говоря, сущность должна иметь ключ, потому что EF должен иметь возможность однозначно идентифицировать его. В противном случае вы можете столкнуться с другими проблемами в вашем приложении.

...