How do I get MS LightSwitch to recognize my View?

陌路散爱 提交于 2019-12-22 13:51:39

问题


I've created a View from a table in another database. I have dbo rights to the databases so viewing and updating is not a problem. This particular View did not have an "id" column. So I added one to the View by using ROW_NUMBER. Now I had a problem with a table, in the same database, not showing up in LightSwitch but that was solved by changing the id column to be NOT NULL. I haven't done any real manipulation in LightSwitch. I'm still in the Import Your Data Source stage (ie. very beginning).

This View, in LightSwitch, is going to be read-only. No updating or deleting. From what I've read, LightSwitch needs a way to determine the PK of a Table or View. It either reads it from the schema (column set as a PK) or finds a column set as NOT NULL and uses that as the PK. Well I can't seem to do either of those things in SQL Server or LightSwitch, so I am stuck as to how to get LightSwitch to "see" my View.


回答1:


for lightswitch to see your view you must have a primary key on a column of the table your are selecting from. Example:

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

create view vw_test
as
select *
from tbl_test

note:sometimes when you edit the primary key column in the view select statement it may cause lightswitch to not see it

Example:

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

lightswitch would not see the table

Hope this was helpful! :)




回答2:


What I do in this case is create a view with an ID column equal to the row number. Ensure the column you're basing the ID on is not null using the isnull() or coalesce() functions.

Example:

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


来源:https://stackoverflow.com/questions/9895613/how-do-i-get-ms-lightswitch-to-recognize-my-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!