Dot-Net
如何將主鍵添加到 sql 視圖?- 或者將視圖連結到 LINQ-2-Entities 的替代方法
我正在向我的實體對像模型添加一個非常簡單的視圖(或嘗試)。該數據庫位於 SQL Server 2008 中。我在使用 C# 的 .Net 3.5 (SP1) 上。
該視圖有兩個欄位:color 和 colorcount,分別是 Varchar(50) 和 count(*)。
當我從數據庫中更新模型並選擇要添加的視圖時,它會執行(它更新了表,添加欄位沒問題)但不添加視圖。不顯示錯誤、警告或消息。
當我打開 .edmx 文件時,我看到它顯示
Warning 6013: No primary key defined.該視圖很複雜,我寧願不將其轉換為 LINQ 查詢。如何添加主鍵以便實體支持視圖?
是否有一種非破解方法可以將這樣的視圖添加到 EDMX?
使用創建視圖後,
schemabinding您可以向其添加主鍵:CREATE VIEW Colors WITH SCHEMABINDING AS SELECT Color='yellow', ColorCount=100 GO CREATE UNIQUE CLUSTERED INDEX PK_Colors ON Colors (Color)
我不知道這是否會對您有所幫助,但您可以使用多語句表值函式創建主鍵。
我找不到任何對視圖主鍵的引用,但我知道它可以通過表函式來完成。