Asp.net
來自數據庫的實體框架更新模型不為 tt 類中新添加的表生成 cs 類
我在 Visual Studio 2012 中使用實體框架 5。
我確實有一個現有的模型。現在我想向該現有模型添加一個新表。為此,我打開了 edxm 文件並使用右鍵點擊成功更新了模型。
現在,在模型的“EntityTypes”下的“模型瀏覽器”中,我可以看到表名存在。但是在解決方案資源管理器中,它沒有顯示我在 .tt 文件下新添加的表的自動生成的 .cs 文件。
我試過“執行自定義工具”,但它沒有生成類。也重新啟動了 Visual Studio,但結果是一樣的。
誰能幫我?
謝謝
問題
- 如果您在數據庫中有表名
tblEmployee但是在添加“實體數據模型”之後,您已經在 EDMX 文件中更改了實體tblEmployee,Employee然後保存並建構。但是 Model1.tt 文件中不會自動生成更改名稱的類。- 當“從數據庫更新模型”添加新表時會出現同樣的問題。
- 在 MVC 中也不可用當使用模型類創建視圖/使用 EntityFramework 使用操作創建控制器時
這個問題是針對VS2012的早期版本的,這個問題在VS2012的升級版本中解決了。
解決方案
我們有早期版本的 VS2012 和 EF 5.0 解決方案
按照步驟
- 右鍵點擊 Model1.tt 並選擇“執行自定義工具”保存和建構現在看到生成的類。
- 右鍵點擊 Model1.Context.tt 並選擇“執行自定義工具”保存並建構現在看到屬性 IN Context 類生成如下
public DbSet<Employee> Employees { get; set; }保存並建構解決方案
Model1Context context=new Model1Context(); List<Employee> empList= context.Employees.ToList();這對我有用。但請記住,在使用 VS2012 版本的 MVC 中“使用實體框架創建控制器和視圖”時,EF 6.0 仍然無法製作腳手架。您必須使用 EF 5.0 或使用新更新更新 VS2012。