在EF Power Tools Beta 3中更改生成的文件名

时间:2013-02-19 12:59:56

标签: entity-framework

我已经搜索过,但未能找到这个问题的答案。目前我们的Db用户表格前缀 - 例如向tblUsers。我已更新EF模板以从生成的类名中删除“tbl”。但是我仍然无法弄清楚如何更改输出文件名以匹配。

有可能还是我要月亮?我在VS 2012中使用EF Power Tools Beta 3.任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:3)

Patrick,您需要修改EF Power Tools使用的T4模板。如果要使用所有映射创建代码优先,而不是Reverse Engineer Code First选项,请选择Customize Reverse Engineer Template。你应该得到三个文件:

  1. Context.tt
  2. Entity.tt
  3. Mapping.tt
  4. 例如,在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。这应该会让你非常清楚如何继续。