将代码添加到Entity Framework 4生成的POCO

时间:2011-12-12 14:02:08

标签: entity-framework poco business-logic domain-model

从EF 4实体图开始并使用T4模板,可以创建可在域模型中使用的POCO类。生成的代码如下所示:

public partial class Product
{
    public virtual int Id
    {
        get;
        set;
    }

    public virtual string Name
    {
        get;
        set;
    }
   //and so on
}

是否有任何优雅的方法来添加我自己的代码来实现属性?例如,我希望通过降低所有字符来实现Name setter。我希望我的代码能够抵制从EF图中重复再生POCO类。

此要求有点类似于向POCO类添加验证代码。此问题已通过创建单独的验证类并通过MetadataType属性将其链接到POCO来解决。不会通过从EF图重复生成POCO来覆盖单独的验证类。

谢谢,

卢西恩

1 个答案:

答案 0 :(得分:1)

没有简单的方法可以做到这一点。您不得触摸生成的代码,因为每次重新生成后您的更改都将被删除。您可以选择:

  • 自己编写实体并且不使用生成器 - 您将完全控制实体代码
  • 修改生成器中的T4模板以添加您的直接代码(这可能很难概括)或者只是在getter和setter以及部分部分中添加对部分方法的调用(您还必须在生成器中声明这些方法)。实体类实现了你需要的部分方法。