![](/img/trans.png)
[英]SQL Server 2008 Sync - How to reinsert conflicting pk rows with new primary key
[英]How to create a primary key on a column in SQL Server or how to import a view without PK in EDM designer?
我的SQL服務器上有一個鏈接服務器,該服務器鏈接到Active Directory。 我創建了一個視圖,該視圖從AD中選擇有關用戶的相關信息。 該視圖沒有主鍵。 現在,我想構建一個OData服務,該服務將從瀏覽器和我的應用程序查詢視圖。 我為此使用.NET WCF數據服務(.NET 4.0,VS2010)。 但是,當我創建edmx文件並嘗試導入視圖時,不會導入該視圖,因為它上面沒有PRIMARY KEY。 我無法在視圖上創建主鍵(在MS SQL Server上無法創建),但是我需要它能夠在我的實體數據模型設計器中導入視圖。 我能做什么? 我該如何運作?
我要補充一點,因為我的視圖沒有架構綁定(數據來自Active Directory),所以我無法創建索引視圖。
嘗試解決一兩個小時的問題,決定在SO上發布並在幾分鍾之內解決問題,真是有趣。
我發現了這個: https : //stackoverflow.com/a/2715299/989256
我們遇到了同樣的問題,這就是解決方案:要強制實體框架將列用作主鍵,請使用ISNULL。 要強制實體框架不要將列用作主鍵,請使用NULLIF。 一種簡單的應用方法是將視圖的select語句包裝在另一個select中。 例:
SELECT
ISNULL(MyPrimaryID,-999) MyPrimaryID,
NULLIF(AnotherProperty,'') AnotherProperty
FROM ( ... ) AS temp
效果還不錯,但是我有點擔心性能。 該視圖加載速度似乎慢得多...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.