我正在使用 PetaPoco T4 模板 (http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx),它总是转换表名,例如它将名为“Media”的表转换为“Medium”。你知道我怎样才能让它停止这样做吗?
谢谢
我正在使用 PetaPoco T4 模板 (http://www.hanselman.com/blog/T4TextTemplateTransformationToolkitCodeGenerationBestKeptVisualStudioSecret.aspx),它总是转换表名,例如它将名为“Media”的表转换为“Medium”。你知道我怎样才能让它停止这样做吗?
谢谢
在您的 .Database.tt 文件中,您可以根据自己的喜好为每个表调整类名:
tables["Media"].ClassName = "Media";
我不知道有什么方法可以在任何地方关闭它。我相信它是 SubSonic 变形器的残余物。在 SchemaReader 类中,您将看到如下调用:
tbl.ClassName=Inflector.MakeSingular(tbl.CleanName);
您可以尝试将其更改为
tbl.ClassName=tbl.CleanName;
为了防止这种情况,我总是将这段代码放在 Database.tt 文件中:
// Read schema
var tables = LoadTables();
foreach(Table t in tables)
{
if(!t.Name.ToLower().StartsWith("tablePrefix_"))
{
// Filter tables by prefix
t.Ignore = true;
}
else
{
// This do the trick discussed here
t.ClassName = t.CleanName;
}
}