使用t4模板在子文件夹中生成类

时间:2013-04-12 07:41:54

标签: c# entity-framework-5 t4 dbcontext

我使用T4模板生成我的实体的上下文。当t4模板文件运行时,它会在项目根目录中添加生成的文件。我想要的是生成的文件放在子文件夹下。如果子文件夹不存在,则创建文件夹,然后将生成的文件放在其中。如果存在文件,则不会生成新文件。

我是t4模板的新手。我换了

fileManager.StartNewFile(entity.Name + ".cs");

fileManager.StartNewFile("SubFolder\" + entity.Name + ".cs");

当我运行它时,文件在SubFolder(使用Windows资源管理器打开文件夹)中创建,但项目不知道它。如果没有文件夹,则会发生奇怪的行为。我错过了什么?

1 个答案:

答案 0 :(得分:1)

最好将tt文件和模型类放在同一个文件夹中。只需更改inputFile路径,如inputFile = @“.. \ Model1.edmx”(如果您的edmx文件位于根文件夹中)。

可能需要更改的另一件事是命名空间,默认情况下它是Code.VsNamespaceSuggestion(),它会将子文件夹名称添加到namesapce。比如“ClassLibrary1.SubFolder”。它可能会导致问题。你可以像namespaceName =“ClassLibrary1”那样硬编码命名空间。