修改t4模板以在两个文件中生成写入文本

时间:2013-04-10 11:09:13

标签: c# entity-framework-5 t4

我的实体模型(MyModel)有MyModel.tt。我需要修改我的MyModel.tt文件。我想要的是我的simpleProperties在一个类中编写,而navProperties和complexProperties在其他类中编写。我找到了这些线,但现在完全空白了。

下面是代码(我认为)我必须编写将在不同类中编写属性的代码。

<#
    }
    var simpleProperties = typeMapper.GetSimpleProperties(entity);
    if (simpleProperties.Any())
    {
        foreach (var edmProperty in simpleProperties)
        {
#>
    // TODO: Write this in entityName.cs
    <#=codeStringGenerator.Property(edmProperty)#>
<#
        }
    }
    if (complexProperties.Any())
    {
#>
<#
        foreach(var complexProperty in complexProperties)
        {
#>
    // TODO: Write this in entityNameComplex.cs
    <#=codeStringGenerator.Property(complexProperty)#>
<#
        }
    }

1 个答案:

答案 0 :(得分:0)

我不确定您是否在询问如何编写“codeStringGenerator”存根或仅将输出分成两个文件。如果您只是想将输出分成两个文件,那么下面的小片段应该可以工作。

<#
        relativeOutputFilePath = @"\Output\" + oneTable.Name + "_List.aspx";
        TemplateHelper.WriteTemplateOutputToFile(relativeOutputFilePath, Host, GenerationEnvironment);
        GenerationEnvironment = new System.Text.StringBuilder();
#>

基本上所有这一切都是抓取目前为止由模板构建的字符串,将其写入您选择的文件,然后重置下一个模板的字符串。

这是从StackOverflow post中获取的,可能会提供更多信息。