Как заставить MS LightSwitch распознавать мой вид? - PullRequest
2 голосов
/ 27 марта 2012

Я создал представление из таблицы в другой базе данных. У меня есть права dbo на базы данных, поэтому просмотр и обновление не является проблемой. В этом конкретном представлении не было столбца «id». Поэтому я добавил его в представление с помощью ROW_NUMBER. Теперь у меня была проблема с таблицей в той же базе данных, которая не отображалась в LightSwitch, но была решена путем изменения столбца id на NOT NULL. Я не делал никаких реальных манипуляций в LightSwitch. Я все еще на стадии импорта источника данных (то есть в самом начале).

Это представление в LightSwitch будет доступно только для чтения. Нет обновления или удаления. Из того, что я прочитал, LightSwitch нужен способ определить PK таблицы или представления. Он либо считывает его из схемы (столбец, заданный как PK), либо находит столбец, заданный как NOT NULL, и использует его в качестве PK. Похоже, я не могу сделать ни одну из этих вещей в SQL Server или LightSwitch, поэтому я застрял в том, как заставить LightSwitch «видеть» мой View.

Ответы [ 2 ]

2 голосов
/ 24 апреля 2012

, чтобы световой переключатель мог видеть ваше представление, у вас должен быть первичный ключ в столбце таблицы, из которой вы выбираете. Пример:

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

create view vw_test
as
select *
from tbl_test

примечание: иногда, когда вы редактируете столбец первичного ключа в операторе выбора представления, это может привести к тому, что световой переключатель не будет его видеть

Пример:

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

выключатель света не увидит таблицу

Надеюсь, это было полезно! :)

0 голосов
/ 13 сентября 2016

В этом случае я создаю представление с столбцом идентификатора, равным номеру строки.Убедитесь, что столбец, на котором вы основываете идентификатор, не является нулевым, используя функции isnull () или coalesce ().

Пример:

create view as
select distinct ID = row_number() over (order by isnull(Name,'')), 
Name = isnull(Name,'')
from My_Table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...