4

我剛開始使用EF5。我創建了一個MSSQL數據庫,然後創建了模型(edmx)文件,然後使用「添加代碼生成項目」創建EF5 dbcontext類。我看到「從數據庫更新模型」不起作用,我需要刪除並重新創建模型。 這對我來說沒問題,但是model.tt模板文件生成的DbContext類會怎樣?我還必須再次生成所有DbContext類嗎?更新edmx模型後,DbContext又如何?

使用數據庫優先環境並使.edmx模型和DbContext類與數據庫保持同步的正確方法是什麼?

回答

4

從數據庫更新模型後,請嘗試Run Custom Tool實體模型,爲我工作並進行測試。

Entity Model右鍵點擊運行自定義工具

+1

其實,如果我改變SQL Server中的字段的數據類型,更新模型將不會更新屬性。我需要按順序刪除並重新添加表格。惱人的 – Vland

0

在VS2010有在解決方案資源管理器的非常右上角稱爲「轉換所有模板」,它更新您的生成的類

1

我可以看到這樣做的兩種方式按鈕:

1)使用EF4方法(也應該可以使用EF5),它使用edmx和數據庫優先流程。然後,無論何時在數據庫中進行更改,只需從edmx designer context-menu中選擇「從數據庫更新模型...」。這會自動更新您生成的實體類。

2)使用EF5方法 - 一次生成POCO類,根本不使用edmx。你可以使用Entity Framework Power Tools來做到這一點,然後使用「逆向工程師代碼優先」。在數據庫模型更改時手動將更改應用於您的類(這顯然只適用於增量數據庫更改)。