2

我從另一個數據庫的表中創建了一個視圖。我對數據庫擁有dbo權限,因此查看和更新​​不成問題。這個特定的視圖沒有「id」列。所以我通過使用ROW_NUMBER添加了一個視圖。現在我在同一個數據庫中遇到了一個問題,在LightSwitch中沒有顯示,但是通過將id列更改爲NOT NULL解決了這個問題。我在LightSwitch中沒有做過任何真正的操作。我仍然處於Import Your Data Source階段(即開始階段)。如何讓MS LightSwitch識別我的視圖?

此視圖在LightSwitch中將爲只讀。沒有更新或刪除。從我讀過的書中,LightSwitch需要一種方法來確定表或視圖的PK。它要麼從架構中讀取它(列設置爲PK),要麼將列設置爲NOT NULL並將其用作PK。好吧,我似乎無法做SQL Server或LightSwitch中的任何一件事,所以我堅持如何讓LightSwitch「看」我的視圖。

+0

您可以用閱讀[寫作完美的問題]做(https://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect- question.aspx)。 – Oded 2012-03-27 18:46:00

+0

@davidstratton:夠好的。 – dotnetN00b 2012-03-27 18:58:34

+0

那麼,[看到這個鏈接解決問題](http://social.msdn.microsoft.com/Forums/en-US/lightswitch/thread/64534e95-ae07-4b8d-9064-f4deadae6438),我會等待看看是否有更好的解決方案。 – dotnetN00b 2012-03-27 19:53:01

回答

2

對於lightswitch來查看你的視圖,你必須在你正在選擇的表格的一列上有一個主鍵。 例子:

create table tbl_test 
(
id int identity primary key not null, 
value varchar(50) 
) 

create view vw_test 
as 
select * 
from tbl_test 

注:有時當你編輯視圖中的SELECT語句中的主鍵列可能會導致電燈開關到看不到它

例子:

create view vw_test 
select cast(id as varchar(50) id,... 

的LightSwitch不會看到表

希望這有幫助! :)

+1

啞工具仍將定義添加爲「鍵已被推斷並且定義被創建爲只讀表/視圖」。真的很討厭 - 微軟並沒有聽說INSTEAD OF觸發器通過視圖處理更新 - 這是2013年,而不是黑暗時代! – SAinCA 2013-04-06 00:45:00

0

我在這種情況下做的是創建一個ID列等於行號的視圖。使用isnull()或coalesce()函數確保您使用ID的列不爲空。

例子:

create view as 
select distinct ID = row_number() over (order by isnull(Name,'')), 
Name = isnull(Name,'') 
from My_Table 
相關問題