這是我的View,一直無法加入實體資料模型

CREATE view [dbo].[FoodSearch]
as
select R.RestaurantId ,RestaurantImg, RestaurantName,Rating, RestaurantAddress, RestaurantPhone, Latlng, TypeName ,Mon ,Tue, Wed,Thu,Fri,Sat,Sun,PlaceId,Type,Cost,ImgBytes
from Restaurant R join RestaurantToType T on R.RestaurantId = T.RestaurantId join FoodType F on T.TypeId = F.TypeId
GO

提示錯誤關鍵字

未定義主索引鍵,也無法推斷有效的主索引鍵。此資料表/檢視已被排除。如果要使用此實體,您必須檢閱您的結構描述,加入正確的索引鍵,並將它取消註解。 

推斷是因為沒有主索引關係。爬文找到保哥文章:解決 SQL Server 檢視表 (Views) 無法匯入 EDMX 的問題

引用自保哥:在 EDMX 匯入 SQL Server 檢視表的時候,有兩種明確提示的方法:

  1. 在 SELECT 子句中,如果有欄位使用 ISNULL 函式,那麼該欄位會自動成為 EF 的主索引鍵
  2. 在 SELECT 子句中,如果有欄位使用 NULLIF 函式,那麼該欄位一定不會成為 EF 的主索引鍵

進行修改如下,加入ISNULL(NULL,1 ) AS ID

ALTER view [dbo].[FoodSearch]
as
select ISNULL(NULL, 1) AS ID,R.RestaurantId ,RestaurantImg, RestaurantName,Rating, RestaurantAddress, RestaurantPhone, Latlng, TypeName ,Mon ,Tue, Wed,Thu,Fri,Sat,Sun,PlaceId,Type,Cost,ImgBytes
from Restaurant R join RestaurantToType T on R.RestaurantId = T.RestaurantId join FoodType F on T.TypeId = F.TypeId
GO

就可以使用啦!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *