2011-12-12 96 views
1

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

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

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

是否有任何优雅的方法来添加我自己的代码来实现属性?例如,我想通过降低所有字符来实现名称设置器。我希望我的代码能够抵制从EF图反复重新生成POCO类。

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

感谢,

卢西恩

回答

1

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

  • 写自己的实体和不使用发电机 - 你将获得超过实体代码
  • 发电机
  • 修改T4模板完全控制以添加您的直接代码(这可能是非常难以一概而论)或者简单地在getter和setter中以及在实体类的部分部分中添加对部分方法的调用(您还必须在生成器中声明这些方法)以实现您需要的部分方法。
+0

部分方法......几乎忘了它们。他们可能是这种方法。谢谢! – lmsasu