gpt4 book ai didi

entity-framework - 使用 EF PowerTools Reverse Engineer Code First 更改生成的上下文文件的名称

转载 作者:行者123 更新时间:2023-12-04 07:25:58 25 4
gpt4 key购买 nike

我一直在试图弄清楚如何制作 EF 电动工具 - 逆向工程代码优先 为生成的上下文文件使用不同的名称 ,而不是它现在使用的。

示例

我有一个名为 的数据库My_Awesome_Dev_Database .当我针对它运行 Reverse-engineer 时,生成的文件将被调用:

My_Awesome_Dev_DatabaseContext.cs



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

MyAwesomeDatabaseContext.cs



迄今为止的尝试

我曾尝试查看 EF.Utilities.CS.ttinclude 文件,以弄清楚文件名是如何生成的 - 但到目前为止我一直没有成功。

有人知道吗 ?

提前致谢!

最佳答案

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

所有的逻辑都在 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或者 - 因为 Entity Framework 是开源的 - 获取代码,添加此配置选项,然后发回拉取请求。

关于entity-framework - 使用 EF PowerTools Reverse Engineer Code First 更改生成的上下文文件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19181338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com