2010-10-12 115 views
1

我想實現的是這或多或少倒數:T4從SQL Server表生成枚舉值

http://www.olegsych.com/2008/07/t4-template-for-generating-sql-view-from-csharp-enumeration/

我有一個值組表(枚舉名)和值表(枚舉值),並希望將其轉化爲枚舉。兩者都在SQL Server中,並且都發生在.edmx中(所以有多種方法可以讀取值)。

有什麼「外面」已經這樣做(我沒有找到它)?如果不是,將去讀取數據的最佳方式(SMO,EDMX動態加載,...)

回答

0

好吧,這裏我是如何實現它:

  • 使用VolatileAssembly從T4工具箱引用...
  • 實現一個T4輔助類,做所有的數據庫工作的組件(使用EF時,請確保實例化上下文時使用一個連接字符串)
  • 在.TT,只需調用進入T4助手類以獲取您需要的數據並創建您的課程
3

我已經把一些更多的精力投入到寫作such a template所以它所有的這些:

  • 有明確的整數值產生枚舉值;
  • 使用Visual Studio的命名空間命名約定,因此生成的枚舉具有項目的默認命名空間和任何子文件夾(就像Visual Studio中的任何代碼文件一樣);
  • 通過使用附加的描述表列值來添加完整的枚舉XML文檔;如果你沒有這些沒關係;
  • 正確命名生成的文件並在代碼中添加一個附加屬性,以便生成的enum不會被代碼分析檢查;
  • 多字查詢表值正確連接到pascal套裝等價物(即多字值變爲MultiWordValue);
  • 枚舉值始終以字母開頭;
  • 所有枚舉值只包含字母和數字,其他所有值都被刪除;

無論如何。一切都在this blog post非常有據可查。