我的情况是有4-5个非常相似的类,我想重构它们,使用抽象基类。这样做的想法是允许每个类都可以使用的方法,同时遵循DRY原则。
我的问题是这些类是由EF4生成的实体类,每次尝试修改模型时,看起来都会崩溃。
最佳/推荐的方法是将一个基类添加到我的EF模型中,并使现有的模型中的类继承自此类作为基类?目前,我没有问题添加基类,给它一个ID属性,因为它似乎需要,然后创建继承关系,但EF会抱怨
'错误3024:映射片段起始处存在问题,从第18563行开始:必须指定所有键属性(MyBaseType.ID)的映射,以便EntitySet MyBaseType.'
在这种情况下,我不希望基本类型持久化到数据库中,纯粹用作包含所有继承它的类共同基础方法的容器。感觉我错过了一些简单的东西,但我无论如何都看不到它。
有什么想法以这种方式添加一个基类吗?还是我应该在代码中添加基类并绕过模型?
编辑: 更进一步的信息,例如现在有3种类型,MortageApplicationForm、BankAccountApplicationForm和CreditCardApplicationform。它们当前存储在3个不同的表中,具有一组不同的字段。
我正在尝试做的是创建一个名为“Form”的基类,其中将拥有共同的字段。
简单地说,假设每个表都有一个名为“CreditCardFormID”、“BankAccountFormID”等的主键ID字段。 我想做的是创建一个基本的“Form”类,其中包含一个属性“ID”,对于某个表的情况将映射到“CreditCardFormID”,而另一个则映射到“BankAccountFormID”。
我很高兴在部分类中进行这种映射(因为我不想将“ID”持久化到数据库中),我只是想在代码中使用它,以便我可以编写通用方法,例如LoadForm(int ID),而无需为每个实体类型编写大量的开关语句或特定的方法。