Entity Framework edmx檔案,不透過從資料庫更新模型更新DB新增加的欄位

摘要:Entity Framework edmx檔案,不透過從資料庫更新模型更新DB新增加的的欄位

前言:非必要請遵循正常管道更新edmx檔案。

因小弟承接的專案有些歷史包袱,特別是資料庫使用Entity Framework的DB First方式來建立的edmx檔案。

常常資料庫欄位有異動時,不見得可以順利的透過從資料庫更新模型來更新edmx檔案。

為了解決這問題,只好自己手動在edmx檔案中新增在資料庫已經新增的欄位。

假設有個Table_Test 資料表,

原本有Col_1 & Col_2欄位,而在資料庫那頭,也新增了Col_3欄位,因為無法透過從資料庫更新模型來更新edmx檔案。

所以手動來新增,開啟edmx檔案,選擇Table_Test 資料表按右鍵=>加入=>純量屬性,手動新增Col_3欄位,並且設定好相關屬性,然後編譯。

編譯後,你會發現有錯誤訊息,如下圖所示:

原因是因為對應詳細資料中並有Col_3欄位的對應資料,如下圖所示:

因為如此,所以編譯時就會出錯,要讓資料行可以順利對應,解決方式就是手動去修正edmx檔案。

利用文字編輯器,開啟edmx檔案檔案後,可以清楚看到該檔案是採用XML方式來呈現,如下圖所示:

在上圖中,紅色框框一跟紅色框框二是對應詳細資料中資料行必須要相互對應的,而紅色框框三則是剛剛手動新增的純量屬性Col_3欄位。

現在針對紅色框框一跟紅色框框二的資料模式分別加入名為Col_3的Property 與ScalarProperty,存檔後,如下圖所示:

此時,返回VS,會要求重新載入edmx檔案,重新載入後,重新編譯就可以順利編譯完成。

對應詳細資料中也出現了Col_3欄位的對應資料,如下圖所示:

如此,大功告成.....Q_____Q