У меня есть ситуация, когда у меня есть 4-5 очень похожих классов, которые я бы хотел повторно использовать для использования абстрактного базового класса. Идея этого заключалась в том, чтобы позволить методам, которые могут быть использованы каждым классом при соблюдении принципов СУХОЙ.
Проблема в том, что эти классы являются классами Entity, созданными из EF4, и каждый раз, когда я пытаюсь изменить свою модель, она, похоже, сломается.
Какой лучший/рекомендуемый метод, чтобы добавить базовый класс в мою EF-модель и сделать существующие классы в модели наследовать от этого в качестве базы? На данный момент у меня нет проблем с добавлением базового класса, придающего ему свойство идентификатора, которое, как ему кажется, требуется, и затем создание наследования, но EF затем стонет
'Error 3024: Problem in mapping fragments starting at line 18563:Must specify mapping for all key properties (MyBaseType.ID) of the EntitySet MyBaseType.'
В этой ситуации я не хочу, чтобы базовый тип сохранялся в БД, чисто используемый в качестве контейнера для базовых методов, общих для всех классов, которые наследуются от него. Мне кажется, что я пропустил что-то простое здесь, но я не могу, чтобы жизнь меня видела.
Любые идеи о том, как добавить в базовый класс таким образом? Или я должен просто добавлять базовый класс в код и как-то обходить модель?
EDIT: В качестве дополнительной информации возьмите пример, в котором говорят 3 типа: MortageApplicationForm, BankAccountApplicationForm и CreditCardApplication. В настоящее время они хранятся в трех разных таблицах с набором различных полей. То, что я пытаюсь сделать, - создать базовый класс, который называется "Форма", который будет иметь общие поля в нем.
На простом уровне скажите, что каждая таблица имеет поле идентификатора первичного ключа, называемое "CreditCardFormID", "BankAccountFormID" и т.д. Что бы я хотел сделать, это создать базовый класс "Form" с идентификатором свойства, который для случая из одной таблицы будет отображаться "CreditCardFormID" и другой "BankAccountFormID".
Я рад сделать это сопоставление в частичных классах (поскольку я не хочу сохранять идентификатор в БД), я просто хочу использовать его в коде, поэтому я могу писать общие методы для таких вещей, как LoadForm (int ID) без необходимости писать огромные переключатели для каждого типа сущности или конкретные методы для каждого типа сущности.