I would like to use a view instead of a table as a data item in a screen, but the view is not showing up in the Data Source->ApplicationData in my Solution Explorer. So, it is of course not showing up in the data item list during screen editing.
I am using the latest IDE version: MS Visual Studio Professional 2013, Verison 12 Update 4.
a) Created a test table (the code is just to show what LightSwitch did, I used the Solution Explorer to create the table)
CREATE TABLE [dbo].[TestPersons] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (255) DEFAULT ('') NOT NULL,
[RowVersion] ROWVERSION NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
b) Created a test view (I used the SQL Server Object Explorer for this)
CREATE VIEW [dbo].[TestPersonView]
AS SELECT Id, Name FROM [TestPersons]
-> I added some test data over the SQL Server Object Explorer and it is shown correctly.
° explicit cast (Lightswitch Datasource views missing from list)
CREATE VIEW [dbo].[TestPersonView]
AS SELECT DISTINCT
CAST(Id as INT) AS Id,
CAST(Name as NVARCHAR(255)) AS Name
FROM [TestPersons]
° explicit cast and not-null handling
CREATE VIEW [dbo].[TestPersonView]
AS SELECT DISTINCT
ISNULL(CAST(Id as INT), 1) AS Id,
ISNULL(CAST(Name as NVARCHAR(255)), '-') AS Name
FROM [TestPersons]
° refreshed main project
° closed visual studio
° rebuild the server project
Appendix, 20. Nov 2014
° On other posts I read about "updating the data source" or "importing a view" but this function is not available (anymore?) in my project:
It looks like views, added directly to (localdb)\v11.0 over the SQL Server Object Explorer are not synced back into to the ApplicationData object in the Solution Explorer.
I would be happy to hear about something better, to get views into localDB for beeing able to use them during the development phase. It is very ugly to have a localDB as data source and a 2nd external data source that points to the same DB, just to get access to the views.