2013-02-10 79 views
2

我用“EF 4.x DbContext Fluent Genarator”在EF代码中生成我的poco类,映射文件和上下文文件(实际上是“EF 4.x DbContext Fluent Genarator “使用3个T4文件) 现在我想对自动生成的代码应用一些更改:用T4自定义一些自动生成的代码

  1. 更改某些类的命名空间。
  2. 将某些类的某些字段标记为[NonSerializable]
  3. 更改我添加到T4模板中的某些自动生成的pocos自定义方法的主体。

我怎样才能继续使用T4文件做这些工作?

回答

0

#3。这应该有帮助

这些类是部分类,因此您可以创建一个具有与部分相同类的新.cs文件。 添加自定义方法。

我无法想象#1的简单方法。 &#.2 becase 当有人更新/重新构建时,自动生成的类的更改将会丢失。

+0

谢谢,但对于#3我该怎么办呢?例如,如果在我的自动生成的代码,我有'公共字符串ToString();'返回一个值,我怎么能改变它与部分类,返回另一个值? – Masoud 2013-02-11 05:03:19

+0

假设你已经生成了部分类Client - > ClientName是字符串属性 - > GetClientNumber()是方法返回的数字。 现在在解决方案 - >下Generated Client.cs的同一项目下创建一个文件夹 - >扩展类 - >在此创建ClientExtend.cs,但该类将部分客户端 - >现在在这里创建新的自定义方法/ >例如新的方法可以是GetClientNumberAsString(),现在客户端对象会同时生成和定制方法。 – Baljeetsingh 2013-02-11 05:49:57

+0

顺便说一句 - 扩展方法也可以提供帮助。例如为客户端创建扩展方法,以字符串形式返回数字。 – Baljeetsingh 2013-02-11 05:50:40