使用EF Power Tools逆向工程师代码更改生成的内容文件的名称

时间:2013-10-04 12:36:37

标签: entity-framework ef-power-tools

我一直在试图弄清楚如何制作EF Power Tools - 逆向工程师代码 为生成的Context文件使用不同的名称 ,而不是它现在使用。

示例

我有一个名为 My_Awesome_Dev_Database 的数据库。当我对此运行逆向工程时,将调用生成的文件:

  

My_Awesome_Dev_DatabaseContext.cs

它想要做的是指定要调用的文件,例如:

  

MyAwesomeDatabaseContext.cs

到目前为止尝试

我试过查看EF.Utilities.CS.ttinclude文件,找出文件名是如何生成的 - 但到目前为止我还没有成功。

有人知道吗?

提前致谢!

1 个答案:

答案 0 :(得分:5)

目前生成的上下文文件命名约定是硬编码且不可配置的。

所有逻辑都在ReverseEngineerCodeFirstHandler类(the source is on CodePlex)内。

使用

设置上下文文件名和路径
var contextFilePath = Path.Combine(modelsDirectory, 
     modelGenerator.EntityContainer.Name + contextHost.FileExtension);
var contextItem = project.AddNewFile(contextFilePath, contextContents);

因此文件名来自modelGenerator.EntityContainer.Name,它在方法的上方创建:

var contextName = 
    connection.Database.Replace(" ", string.Empty)
                       .Replace(".", string.Empty) + "Context";
var modelGenerator = 
    new EntityModelSchemaGenerator(storeGenerator.EntityContainer, 
        "DefaultNamespace", contextName);

因此,您可以看到该工具只需要db名称删除空格和点,并将其用作上下文名称,最终将生成文件名。

您可以打开issue或 - 因为实体框架是开源的 - 获取代码,添加此配置选项,然后发回拉取请求。