這是我的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 檢視表的時候,有兩種明確提示的方法:
- 在 SELECT 子句中,如果有欄位使用 ISNULL 函式,那麼該欄位會自動成為 EF 的主索引鍵。
- 在 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
就可以使用啦!