Я применил некоторое наследование на основе типа таблицы в моей модели данных (в основном имеют тип BaseEntity
со всей базой данных для моих предметов и тип Employer
, который наследуется от элемента BaseEntity
). Кажется, что все настроено правильно, и при использовании сущностей (через службы данных ADO.net или через Linq to Entities) я вижу тип Employer
, и все выглядит нормально. Проблема начинается, когда я создаю новый объект Employer
и пытаюсь его сохранить.Невозможно сохранить Entity Framework Унаследованные типы
В контексте, который не представляется предметом .AddToEmployer
(только и AddObject
или AddToBaseEntity
).
Если я использую AddObject("Employer", NewEmployer)
я получаю сообщение об ошибке и из:
Название EntitySet «DataEntities.Employer» не может быть найден.
Если я использую AddToBaseEntity(NewEmployer)
я получаю сообщение об ошибке из:
Невозможно определить действительный порядок для зависимых операций. Зависимости могут существовать из-за ограничений внешнего ключа, требований модели или генерируемых значений.
Я пропустил шаг в настройке наследования? Есть ли какой-то конкретный способ сохранить объекты, которые унаследованы? Что я делаю не так? Я предполагаю, что основная проблема заключается в том, что у меня должен быть AddToEmployer
, что мне нужно сделать, чтобы разоблачить это? Кажется странным, что это не вариант, так как я могу видеть тип Employer на стороне клиента и могу делать такие вещи, как:
var NewEmployer = new Employer()
- что, по-видимому, свидетельствует о том, что я хорошо вижу тип Работодателя.
В качестве примечания, которое я забыл упомянуть, реализация IDisposable делает это очень приятным. – JohnMetta 2010-12-23 20:16:39