Dot-Net

如何將主鍵添加到 sql 視圖?- 或者將視圖連結到 LINQ-2-Entities 的替代方法

  • June 14, 2013

我正在向我的實體對像模型添加一個非常簡單的視圖(或嘗試)。該數據庫位於 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)

我不知道這是否會對您有所幫助,但您可以使用多語句表值函式創建主鍵。

我找不到任何對視圖主鍵的引用,但我知道它可以通過表函式來完成。

創建函式 (Transact-SQL)

引用自:https://stackoverflow.com/questions/1821877