T4 POCO模板 - 在.tt文件中删除自动生成的.cs文件

3
我正在修改“ADO.NET POCO实体生成器”模板,以创建自己的POCO类。我用于我的模型的.tt文件名为Model1.tt。当你展开Model1.tt时,你会看到一个名为Model1.cs的文件,其中包含一些自动生成的“Fixup”代码。
public class FixupCollection<T> : ObservableCollection<T>
{
    //Auto-generated code here
}

我不需要这个Model1.cs文件。是否可以修改Model1.tt文件,以便根本不创建Model1.cs文件?
3个回答

1

我也遇到了同样的问题 - 一个解决方案是将类本身用作基类等。虽然不完全是删除,但我无法找到轻松的方法来实现它。


1
在尝试了其他所有方法之后,我也使用了这个hack...但我仍然认为有些事情我可以做来避免这种情况。 - Mr_Hmp

1

不确定如何完全删除文件,但是要删除FixupCollection类,您只需删除或注释掉WriteCustomObservableCollection();。请注意,您还必须修改生成POCO导航属性的FixupCollection的模板部分。


是的 - 这就是我最终做的。 - thd

0

使用EntityFrameworkTemplateFileManager创建文件。在类型的tt文件的第26行,您将看到它被初始化:

EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);

你会发现它只是用于在文件中搜索“fileManager”。


如果在Model1.tt文件中注释掉fileManager,那么你会得到一些错误,并且不会生成任何实体。 - thd
当我运行模板时,没有生成Model1.cs文件 - 只有为“真实”实体生成的文件。我猜测这个文件是由于您在模板中进行的自定义而生成的。 - Steve Michelotti
嗯...我又重新开始了。 1) 我添加了 ADO.NET 实体数据模型(代码生成策略=无); 2) 添加了“添加代码生成项...”; 3) 添加了“ADO.NET POCO 实体生成器”; 4) 在 Model1.tt 中注释掉了 'fileManager'; 5) 删除了 Model1.tt 下的所有 .cs 文件,然后运行 Model1.tt 模板。结果:只生成了 Model1.cs。我的模型中每个实体都没有生成对应的 .cs 文件。但是,Model1.cs 包含了这些实体的定义。 - thd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接