Эта вещь сводит меня с ума, и ошибка для меня совершенно бессмысленна:
Невозможно обновить EntitySet 'TableB', потому что у него есть DefiningQuery, и в элементе нет элемента для поддержки текущей операции.
Мои таблицы помещаются так:
TableA int idA (identity, primary key) ... TableB int idA (FK for TableA.idA) int val
TableB не имеет определенного первичного ключа на SQL-сервере. Entity Framework импортировала таблицу и ассоциацию и установила оба поля в качестве ключа. Но он выдаст эту ошибку, когда я попытаюсь сделать вставку в таблицу!
Что случилось?
Edit: Как предложил Алекс, решение было следующим:
- Щелкните правой кнопкой мыши на файле edmx, выберите Open with, XML editor
- Найдите объект в элементе edmx: StorageModels
- Полностью удалить DefiningQuery
- Переименуйте хранилище: Schema = "dbo" в Schema = "dbo" (иначе код будет генерировать ошибку, указав, что имя недействительно)
- Удалить хранилище: свойство name
Я оставил ключ как есть, так как мне было хорошо, что оба столбца являются частью ключа.