我基本上是在重新问这个问题,因为唯一且被接受的答案不是问题的答案。
是否可以告诉 EF 使用继承 EntityObject 的类(如下所示)作为生成的实体类的基类?
public abstract class CustomEntityObject : EntityObject
{
<additional functionality>
}
我问的原因是我想停止添加接口并在单独的部分类文件中的所有实体类型上实现它们。通过对 EntityObject 进行子类化,我只能实现一次附加功能。
更新:
EF 隐式使用 .tt 文件来生成实体类。隐含的意思是您在项目中看不到 .tt 文件。解决方案是显式添加模板(右键单击 .edmx 设计器并单击“添加代码生成项...”,然后添加“ADO.NET EntityObject Generator”)。然后更改 .tt 中的单个值:
string BaseTypeName(EntityType entity, CodeGenerationTools code)
{
return entity.BaseType == null ? "EntityObject" : MultiSchemaEscape((StructuralType)entity.BaseType, code);
}
更改为:
string BaseTypeName(EntityType entity, CodeGenerationTools code)
{
return entity.BaseType == null ? "CustomEntityObject" : MultiSchemaEscape((StructuralType)entity.BaseType, code);
}