首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EntityObject能被分类吗?

EntityObject能被分类吗?
EN

Stack Overflow用户
提问于 2012-07-23 12:00:49
回答 2查看 637关注 0票数 1

我基本上是重新问这个问题作为唯一和接受的答案不是一个问题的答案。

是否可以告诉EF使用子类EntityObject作为生成的实体类的基类,如下面的子类?

代码语言:javascript
复制
public abstract class CustomEntityObject : EntityObject
{
    <additional functionality>
}

我问这个问题的原因是,我不想在所有实体类型上添加接口并在单独的部分类文件中实现它们。通过子类EntityObject,我只能实现一次额外的功能。

更新:

EF隐式使用.tt文件生成实体类。隐式地说,我的意思是您看不到项目中的.tt文件。解决方案是明确地添加模板(右键单击.edmx设计器,然后单击“.”,然后添加"ADO.NET EntityObject生成器“)。然后在.tt中更改一个值:

代码语言:javascript
复制
string BaseTypeName(EntityType entity, CodeGenerationTools code)
{
    return entity.BaseType == null ? "EntityObject" : MultiSchemaEscape((StructuralType)entity.BaseType, code);
}

对以下方面的改动:

代码语言:javascript
复制
string BaseTypeName(EntityType entity, CodeGenerationTools code)
{
    return entity.BaseType == null ? "CustomEntityObject" : MultiSchemaEscape((StructuralType)entity.BaseType, code);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-23 13:04:13

问题是,使用默认的T4模板设计器将生成从EntityClass继承的实体类。

要使用模型设计器并能够提供自定义基类,您需要下载http://msdn.microsoft.com/en-us/library/ff477605.aspx (在添加item>online模板之前,这是对如何使用它的描述,但至少在我的vs2012上找不到它了,因为某种原因,它可能已经消失了)模板和编辑模板文件注入您的自定义基类,但我认为大多数程序员使用POCO是有原因的,所以最好是使用没有持久性的类。

票数 0
EN

Stack Overflow用户

发布于 2012-10-08 13:44:07

您可以使用这样的黑客(这是 hack )。

与实体在同一个名称空间中创建类“抽象类EntityObject : System.Data.Objects.DataClasses.EntityObject”。然后可以使用这个类作为基类。

但是如果您想要创建复杂而美观的解决方案--使用T4模板、自定义生成等等--您可以找到解决方案这里这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11612110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档