T4从SQL Server表值生成枚举

时间:2010-10-12 08:24:04

标签: visual-studio-2010 t4

我想要达到的目的或多或少与此相反:

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

我有一个值组表(枚举名称)和一个值表(枚举值),并希望将它们转换为枚举。两者都在SQL Server中,并且两者都碰巧在.edmx中(因此有很多方法可以读取值)。

是否有“外面”的东西已经做到了(我没有找到它)?如果没有,那么阅读数据的最佳方法是什么(SMO,动态加载的EDMX,......)

2 个答案:

答案 0 :(得分:3)

我已经花了更多精力写such a template所以它完成了所有这些:

  • 使用显式整数值生成枚举值;
  • 使用Visual Studio的命名空间命名约定,因此生成的枚举具有项目的默认命名空间,并附加了任何子文件夹(就像Visual Studio中的任何代码文件一样);
  • 使用其他描述表列值添加完整的枚举XML文档;如果你没有这些没关系;
  • 正确命名生成的文件并在代码中添加其他属性,以便生成的enum不会被代码分析仔细检查;
  • 多字查找表值正确连接到以pascal为基础的等价物(即多字值变为MultiWordValue);
  • 枚举值始终以字母开头;
  • 所有枚举值仅包含字母和数字,其他所有内容都被删除;

反正。 this blog post中记录了所有内容。

答案 1 :(得分:0)

好的,这是我实施它的方式:

  • 使用T4工具箱中的VolatileAssembly引用一个......
  • 的程序集
  • 实现执行所有数据库工作的T4 Helper类(使用EF时,确保在实例化上下文时使用连接字符串)
  • 在.tt中,只需调用T4帮助程序类即可获取所需数据并创建类