我已经搜索过,但未能找到这个问题的答案。目前我们的Db用户表格前缀 - 例如向tblUsers。我已更新EF模板以从生成的类名中删除“tbl”。但是我仍然无法弄清楚如何更改输出文件名以匹配。
有可能还是我要月亮?我在VS 2012中使用EF Power Tools Beta 3.任何帮助都会非常感激!
答案 0 :(得分:3)
Patrick,您需要修改EF Power Tools使用的T4模板。如果要使用所有映射创建代码优先,而不是Reverse Engineer Code First
选项,请选择Customize Reverse Engineer Template
。你应该得到三个文件:
例如,在Mapping.tt中,有一行从TableSet读取MetadataProperties,并提取Table名称。这条线看起来像这样:
var tableSet = efHost.TableSet;
var tableName = (string)tableSet.MetadataProperties["Table"].Value ?? tableSet.Name;
这是您需要进行更改并执行以下操作的地方:
var newTableName = tableName.Replace("tbl", String.Empty);
当然,您应该选择其他策略并使用Substring
方法或正则表达式来读取和删除前三个字符。之后,您必须浏览 tt 文件并使用您想要使用tableName
的用户逻辑以及用户newTableName
变量的位置。您将使用tableName保存tableName以及数据库中的表,以及newTableName,您希望将该名称用于POCO类和文件名。
对其他两个文件重复此过程。有关更多信息,请查看Rowan Miller的博客article。这应该会让你非常清楚如何继续。