我已经搜索过,但无法找到这个问题的答案。目前我们的 Db 用户表的前缀 - 例如 tblUsers。我更新了 EF 模板以从生成的类名中删除“tbl”。但是我仍然无法弄清楚如何更改输出文件名以匹配。
有可能还是我要月亮?我在 VS 2012 中使用 EF Power Tools Beta 3。任何帮助将不胜感激!
我已经搜索过,但无法找到这个问题的答案。目前我们的 Db 用户表的前缀 - 例如 tblUsers。我更新了 EF 模板以从生成的类名中删除“tbl”。但是我仍然无法弄清楚如何更改输出文件名以匹配。
有可能还是我要月亮?我在 VS 2012 中使用 EF Power Tools Beta 3。任何帮助将不胜感激!
Patrick,您需要修改 EF Power Tools 使用的 T4 模板。当您想使用所有映射创建代码优先时Reverse Engineer Code First
,请选择Customize Reverse Engineer Template
. 你应该得到三个文件:
例如,在 Mapping.tt 中有一行从 TableSet 中读取 MetadataProperties,并提取表名称。该行如下所示:
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 与数据库中的表完成映射的位置,以及您希望将该名称用于 POCO 类和文件名的 newTableName 。
对其他两个文件重复该过程。有关更多信息,请查看 Rowan Miller 的博客文章。这应该给你一个很好的想法如何继续。