2013-10-04 34 views
4

我一直在試圖找出如何使EF電動工具 - 逆向工程的Code First 使用不同的名稱爲生成的背景文件,比現在使用的還要多。更改名稱反向工程代碼第一次

我有一個名爲數據庫My_Awesome_Dev_Database。當我運行鍼對反向工程,所生成的文件名爲:

My_Awesome_Dev_DatabaseContext.cs

會是什麼做的是指定的文件就是被調用,用於例如:

MyAwesomeDatabaseContext.cs

嘗試到目前爲止

我試圖通過EF.Utilities.CS.ttinclude文件來找出文件名是如何生成的 - 但我到目前爲止一直沒有成功。

有誰知道嗎?

在此先感謝!

回答

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或者 - 因爲實體框架是開源的 - 獲取代碼,添加此配置選項併發送回拉請求。

+0

雖然它不能解決問題,但我認爲它與我們將要得到的答案一樣接近。我們找到了幾種方法來解決問題 - 當然最好的解決方案是創建拉請求。將研究這一點。謝謝您的幫助。 – CodeMonkey