我一直在试图弄清楚如何制作EF Power Tools - 逆向工程师代码 为生成的Context文件使用不同的名称 ,而不是它现在使用。
示例
我有一个名为 My_Awesome_Dev_Database 的数据库。当我对此运行逆向工程时,将调用生成的文件:
My_Awesome_Dev_DatabaseContext.cs
它想要做的是指定要调用的文件,例如:
MyAwesomeDatabaseContext.cs
到目前为止尝试
我试过查看EF.Utilities.CS.ttinclude文件,找出文件名是如何生成的 - 但到目前为止我还没有成功。
有人知道吗?
提前致谢!
答案 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或 - 因为实体框架是开源的 - 获取代码,添加此配置选项,然后发回拉取请求。