解決MVC中Model上的特性在EF框架刷新時清空的問題

  • 2019 年 10 月 14 日
  • 筆記

MVC中關於前端數據的效驗一般都是通過在Model中相關的類上打上特性來實現。

但是在我們資料庫發生改變,EF框架需要刷新時會把我們在Model上的特性全部清除,這樣的話,我們前端的驗證就會失效。

因此,我覺得可以使用Partial-局部類(夥伴類) 的方式來實現EF框架刷新特性不清除的功能。

在Model文件夾當中我們先建立一個類,一般命名為“你的類名”+Partial,因為如果直接建立同名類會提示已存在,要求覆蓋,或者在別的地方建同名類。(需要在class前面加上Partial 關鍵字)

然後,我們打開類,在內部將類名取為同名類,為這個類打上特性-[MetadataType(typeof(X))]  這裡是為了指定與數據模型類關聯的元數據類. X-需要建立聯繫的類名。

建立起需要聯繫的類後,在類當中粘貼上你需要驗證的類當中所有的屬性,在這些屬性上打上特性就相當於在Model類中打上了特性,並且不會因為EF框架刷新而清除可以防止前後端的驗證程式碼失效。

 

Tags: