动态DbContext生成

时间:2013-05-01 18:32:17

标签: visual-studio entity-framework t4 dbcontext

我需要编写一个网站内容管理系统,该系统利用动态实体框架DbContext生成。作为输入,我得到一个自定义数据类型声明(在xml中),我的C#代码知道如何解析。在输出中,我需要获取DbContext的代码,该代码将提供将所提供的数据类型实例作为DbSet存储在数据库中的工具。

我可以看到有.tt - > .cs生成器以Visual Studio的插件形式。我可以肯定地创建代码,从我的自定义声明生成基于xml(我假设它).tt模板,然后为此.tt生成.cs DbContext。但是如何从代码中手动运行.tt-> .cs转换?

1 个答案:

答案 0 :(得分:0)

通常在Visual Studio中的设计时转换T4模板。如果要在运行时使用T4模板,请将.tt项目项的“自定义工具”属性的值更改为“TextTemplatingFilePreprocessor”。

这将使Visual Studio从您的T4模板创建一个C#类,可以在运行时实例化,您可以在其中传递参数(例如您的xml类型声明)。调用“TransformText()”将返回包含数据类的T4模板的实际输出代码。

为了在运行时使用这些类,您还需要在内存中编译输出代码。