如何避免*.edmx檔被異動時,所設置的驗證屬性被清除

 

一開始我在LINQ to SQL所產生的類別檔案中已經設置好驗證屬性如下圖

 

但如果我在.edmx檔做Table Schema異動時,如下圖

 

再新增一個Email2屬性,卻發現檔案類別已經把我所設的驗證屬性清掉了,

 

這每次的Table Schema異動將會對我造成困擾

 

解決辦法如下

1.新增路徑Models->Partials資料夾,然後再新增一個同名的Table_test.cs類別,

並把先前設定的驗證屬性給寫進去,如下圖

 

重新編譯後發現錯誤「WebApplication2.Models.Table_test' already contains a definition for 'Email」

表示與另一個Email名稱衝突,

這時我們只要把衝突的名稱刪掉就好

 

但每一次修改Schema就要刪掉一次,欄位一多時就很恐怖了,搞死你。

現在原本的Table_test.cs類別不用刪掉Email,

我們只要在後來新增的Table_test.cs類別,改成如下圖

 

用來專門管理所修改的驗證屬性,不被T4所影響