[Entity Framework] 沒有Key,沒有Entity.
之前看書、聽課都學到,每個Entity 物件都要有Primary Key.
目前Entity Framework5/6 不能跨DBContext,若專案中需要另一個Database的表格,通常會在這資料庫加上一個View,以方便加入EDM來Join或查詢資料。
(若不這樣做,其實也有許多方法可以達成目的,不過目前暫時先這麼搞....)
問題來了:
今天在EDM加入一個View後,沒有出現錯誤,但方案總管、模型瀏覽器卻一直找不到剛剛加入的View...
一開始以為是權限的問題,但設定後還是一樣狀況!
找到後來,才發現VS2012錯誤清單視窗在加入Entity後,有提示該實體找不到Key而被排除的警告。
回頭找原始的Table,本來就有建一個Primary Key阿,為什麼會說找不到Key而被排除呢???
原來,那個View實際用不到key那個欄位,所以建立時並沒有加入該欄位,所以EDM加入那個View時,就沒辦法判斷key是哪個...
只要在View加入原始Table的Primary Key欄位 (雖然用不到,但為了EF,還是加吧~),這樣就OK了~