T4类库中的模板和连接字符串

时间:2011-01-05 17:18:57

标签: asp.net .net sql-server-2008 t4

我正在使用模板posted in this thread从包含我的DAL的类库中的SQL Server中的几个查找表生成C#枚举。

目前,我已经将模板使用的连接字符串嵌入到类库中的模板包含文件中。有没有一种方便的方法让模板从主项目(WAP)的web.config中获取连接字符串而不必包含物理路径?或者有更好的方法来解决这个问题吗?

修改

我还考虑过创建一个SQL CLR程序集,该程序集返回一个包含枚举内容的表值函数(然后在C#中定义,而不是在数据库中定义),但我不确定性能会受到什么影响是。它是否显着显然会依赖于应用程序,但是如果它是一种最好的避免 - 这种方法,我不想充斥着糟糕的道路。

1 个答案:

答案 0 :(得分:10)

我在执行T4模板时使用以下方法从web.config进行阅读

<# var path = Host.ResolvePath(@"..\..\www"); #>

其中..\..\wwwweb.config所在目录相对于我的T4模板执行位置的相对路径

var config = ConfigurationManager.OpenMappedExeConfiguration(
   new ExeConfigurationFileMap { ExeConfigFilename = location +@"\web.config" },
   ConfigurationUserLevel.None);

var connStrings = config.ConnectionStrings;