資料庫檢視表無法加入至 edmx 中,主要原因都是檢視表沒有索引,此處說的沒有索引是 Entity Framework 無法辨識而造成的,所以必須按照 Entity Framework 的需求設計。
其實不只是檢視表 ( View Table ) ,資料表沒有索引也會造成無法加入,不過 DBA ( 資料庫管理者 )應該不會這樣搞,所以資料結構正常設計的話,應該不太會出問題,檢視表才會比較常發生。
此篇使用以前使用的 ASPNetMVC 當範例,直接在 master分支上就可以觀看到詳細過程;首先為了方便觀看對照,針對北風資料庫的 Order,先建立兩個檢視表
兩個檢視表建立,都不加入索引
1 | -- 加入失敗的範例 |
添加失敗的範例
添加成功的範例
主要差別就在於自訂的排序編號,一個使用 NULL 檢查一個沒有;在 edmx 中,判斷是否索引的話,只會依照是否為 NULL 去判別,所以就算成功加入,也要仔細去設定欄位。