2013-02-10 81 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