Wskazówki: aktualizowanie rekordów przy użyciu procedur przechowywanych
Nie można wywołać procedury przechowywanej w bazie danych programu SQL Server bezpośrednio z LightSwitch, ale można utworzyć usługi Windows Communication Foundation (WCF) Rich Internet Application (RIA) Aby uzyskać dostęp do procedur przechowywanych i następnie uzyskać dostęp do usługi z Twojej LightSwitch aplikacji.W tym instruktażu przedstawiono sposób Wstawianie, aktualizowanie i usuwanie rekordów klientów w LightSwitch aplikacji za pomocą procedur przechowywanych i usługi WCF RIA.
Wielu administratorów bazy danych nie zezwalaj na bezpośredni dostęp do tabel, zamiast narażając widoki tylko do odczytu i ustalające procedury przechowywane do wstawiania, aktualizacji i usuwania rekordów.LightSwitchnie rozpoznaje procedury przechowywane, więc dowolnej bazy danych, który opiera się na procedury przechowywane, aby zaktualizować rekordy na początku wydaje się niezdatny do użytku.Po wykonaniu dodatkowych czynności, w rzeczywistości można użyć tych baz danych z LightSwitch.
Wymagania wstępne
W tym instruktażu wykorzystano bazy danych Northwind, z LightSwitch Wycieczki z przewodnikiem samouczek.Aby uzyskać więcej informacji, zobacz Instalacja bazy danych Northwind próbki.
Tworzenie procedur przechowywanych
W większości przypadków można uzyskać dostęp, procedur przechowywanych, które już istnieją w bazie danych.Baza danych Northwind nie ma niezbędnych procedur przechowywanych do Wstawianie, aktualizowanie i usuwanie rekordów klientów, więc należy je dodać.
Aby dodać procedur przechowywanych
Na pasku menu wybierz polecenie View, Programu SQL Server Object Explorer.
W Programu SQL Server Object Explorer okna, rozwiń węzeł NORTHWIND bazę danych węzła, a następnie wybierz polecenie przy użyciu.
Rozwiń węzeł przy użyciu węzła, a następnie wybierz polecenie Stored Procedures.
Otwarcie menu skrótów dla Stored Procedures, a następnie wybierz polecenie Dodać nowa procedura składowana.
W Edytor kodu, aby zastąpić zawartość z następującego kodu języka Transact-SQL, a następnie wybierz Aktualizacja przycisk.
CREATE Procedure [dbo].[InsertCustomer] @CustomerID nchar(5), @CompanyName nvarchar(40), @ContactName nvarchar(30), @ContactTitle nvarchar(30), @Address nvarchar(60), @City nvarchar(15), @Region nvarchar(15), @PostalCode nvarchar(10), @Country nvarchar(15), @Phone nvarchar(24), @Fax nvarchar(24) AS INSERT INTO [dbo].[Customers] ([CustomerID] ,[CompanyName] ,[ContactName] ,[ContactTitle] ,[Address] ,[City] ,[Region] ,[PostalCode] ,[Country] ,[Phone] ,[Fax]) VALUES (@CustomerID ,@CompanyName ,@ContactName ,@ContactTitle ,@Address ,@City ,@Region ,@PostalCode ,@Country ,@Phone ,@Fax)
W Podgląd aktualizacji bazy danych okno dialogowe Wybierz Aktualizacja bazy danych przycisk.
InsertCustomer procedura składowana jest dodawany do bazy danych.
Otwarcie menu skrótów dla Stored Procedures, a następnie wybierz polecenie Dodać nowa procedura składowana.
W Edytor kodu, aby zastąpić zawartość z następującego kodu języka Transact-SQL, a następnie wybierz Aktualizacja przycisk.
CREATE PROCEDURE [dbo].[UpdateCustomer] @CustomerID nchar(5), @CompanyName nvarchar(40), @ContactName nvarchar(30), @ContactTitle nvarchar(30), @Address nvarchar(60), @City nvarchar(15), @Region nvarchar(15), @PostalCode nvarchar(10), @Country nvarchar(15), @Phone nvarchar(24), @Fax nvarchar(24) AS UPDATE [dbo].[Customers] SET [CompanyName] = @CompanyName ,[ContactName] = @ContactName ,[ContactTitle] = @ContactTitle ,[Address] = @Address ,[City] = @City ,[Region] = @Region ,[PostalCode] = @PostalCode ,[Country] = @Country ,[Phone] = @Phone ,[Fax] = @Fax WHERE CustomerID=@CustomerID
W Podgląd aktualizacji bazy danych okno dialogowe Wybierz Aktualizacja bazy danych przycisk.
UpdateCustomer procedura składowana jest dodawany do bazy danych.
Otwarcie menu skrótów dla Stored Procedures, a następnie wybierz polecenie Dodać nowa procedura składowana.
W Edytor kodu, aby zastąpić zawartość z następującego kodu języka Transact-SQL, a następnie wybierz Aktualizacja przycisk.
CREATE PROCEDURE [dbo].[DeleteCustomer] @CustomerID nchar(5) AS DELETE FROM [dbo].[Customers] WHERE CustomerID=@CustomerID
W Podgląd aktualizacji bazy danych okno dialogowe Wybierz Aktualizacja bazy danych przycisk.
DeleteCustomer procedura składowana jest dodawany do bazy danych.
Utwórz model danych podmiotu
Następnym krokiem jest utworzenie modelu danych Entity Framework, który będzie Wstawianie, aktualizowanie i usuwanie rekordów przy użyciu procedur przechowywanych, dodane przez siebie.
Aby utworzyć model danych
Na pasku menu wybierz Plik, Nowy, projekt.
W Nowy projekt okno dialogowe rozwiń albo programu Visual Basic lub Visual C# węzła, a następnie wybierz polecenie Biblioteka klas szablonu.
W Nazwa tekst wprowadź NorthwindService, a następnie wybierz polecenie OK przycisk.
W Solution Explorer, otwórz menu skrótów dla MyProject węzła, a następnie wybierz polecenie Otwórz.
W framework docelowej listy, wybierz polecenie .NET Framework 4.
W Solution Explorer, otwórz menu skrótów dla NorthwindService, wybierz polecenie Dodaj, a następnie wybierz polecenie Nowy element.
W Add New Item okno dialogowe Wybierz Modelu danych jednostki ADO.NET szablonu.
W Nazwa tekst wprowadź Northwind.edmx, a następnie wybierz polecenie Dodaj przycisk.
W Kreator modelu danych podmiotu, wybierz polecenie Generuj z bazy danych ikonę, a następnie wybierz polecenie Dalej przycisk.
Na Wybieranie połączenia danych wybierz Nowego połączenia przycisk.
W Właściwości połączenia dialogowe, w Nazwa serwera tekst Wprowadź nazwę serwera, w którym zainstalowano bazę danych Northwind.
Uwaga dotycząca języka J# Można znaleźć nazwy w Programu SQL Server Object Explorer.
W Wybierz lub wprowadź nazwę bazy danych tekst wprowadź Northwind.
Wybierz polecenie OK przycisk, a następnie wybierz Dalej przycisk.
Na Wybierz obiekty bazy danych użytkownika i ustawienia strony, rozwiń węzeł tabele węzła, a następnie wybierz Klienci pole wyboru.
Rozwiń węzeł procedur przechowywanych i funkcji węzła, a następnie kliknij polecenie Wybierz DeleteCustomer, InsertCustomer, i UpdateCustomer pól wyboru, a następnie wybierz Zakończ przycisk.
Modelu jednostki jest generowany i Northwind.edmx jest wyświetlany diagram bazy danych.
[!UWAGA]
Jeśli Ostrzeżenie o zabezpieczeniach pojawi się okno dialogowe, wybierz polecenie OK przycisk do uruchamiania tego szablonu.
Otwarcie menu skrótów dla klienta encji, a następnie wybierz polecenie Przechowywane procedury mapowanie.
W Szczegóły mapowania okno, w < Wybierz Wstaw funkcję > listy, wybierz polecenie InsertCustomer.
W < Wybierz funkcji Update > listy, wybierz polecenie UpdateCustomer.
W < Wybierz Usuń funkcja > listy, wybierz polecenie DeleteCustomer.
Zamknij Northwind.edmx designer.
W Solution Explorer, wybierz polecenie Pokaż wszystkie pliki przycisk paska narzędzi.
Należy rozwinąć węzeł Northwind.edmx, a następnie usuń Northwind.tt i Northwind.Context.tt pliki.
Otwórz Northwind.edmx plik i podświetl białe miejsca poza klienta encji.
W Właściwości okna, zmień wartość Strategii generowania kodu właściwość, aby domyślne.
Na pasku menu wybierz polecenie budować, Budować NorthwindService.
Masz teraz model danych Entity Framework, który będzie Wstawianie, aktualizowanie i usuwanie rekordów przy użyciu własnych procedur przechowywanych.
Utwórz usługę WCF RIA
Jeśli tworzysz usługi WCF RIA, Twój LightSwitch aplikacja może zużywać modelu danych Entity Framework jako źródła danych.
Aby utworzyć usługę
W Solution Explorer, otwórz menu skrótów dla NorthwindService projektu, wybierz polecenie Dodaj, a następnie wybierz polecenie Nowy element.
W Add New Item okno dialogowe Wybierz Klasy usługi domeny szablonu.
W Nazwa tekst wprowadź NorthwindService, a następnie wybierz polecenie Dodaj przycisk.
W Dodać nowe klasy usługi domeny okno dialogowe Wybierz OK przycisk.
W Solution Explorer, otwórz menu skrótów dla Usługi Northwind, a następnie wybierz polecenie Dodaj odwołanie.
Wybierz polecenie rozszerzenia węzła, a następnie kliknij polecenie Wybierz System.ServiceModel.DomainServices.EntityFramework pole wyboru, a następnie wybierz OK przycisk.
Dodaj następujący kod do NorthwindService klasy:
Imports System.ServiceModel.DomainServices.EntityFramework Public Class NorthwindService Inherits LinqToEntitiesDomainService(Of NorthwindEntities) <Query(IsDefault:=True)> Public Function GetCustomers() As IQueryable(Of Customer) Return Me.ObjectContext.Customers End Function Public Sub InsertCustomer(ByVal customer As Customer) If ((customer.EntityState = EntityState.Detached) = False) Then Me.ObjectContext.ObjectStateManager. ChangeObjectState(customer, EntityState.Added) Else Me.ObjectContext.Customers.AddObject(customer) End If End Sub Public Sub UpdateCustomer(ByVal currentCustomer As Customer) Me.ObjectContext.Customers.AttachAsModified(currentCustomer, Me.ChangeSet.GetOriginal(currentCustomer)) End Sub Public Sub DeleteCustomer(ByVal customer As Customer) If ((customer.EntityState = EntityState.Detached) = False) Then Me.ObjectContext.ObjectStateManager. ChangeObjectState(customer, EntityState.Deleted) Else Me.ObjectContext.Customers.Attach(customer) Me.ObjectContext.Customers.DeleteObject(customer) End If End Sub End Class
namespace NorthwindService { public class NorthwindService : LinqToEntitiesDomainService<NorthwindEntities> { [Query(IsDefault = true)] public IQueryable<Customer> GetCustomers() { return this.ObjectContext.Customers; } public void InsertCustomer(Customer customer) { if ((customer.EntityState != EntityState.Detached)) { this.ObjectContext.ObjectStateManager. ChangeObjectState(customer, EntityState.Added); } else { this.ObjectContext.Customers.AddObject(customer); } } public void UpdateCustomer(Customer currentCustomer) { this.ObjectContext.Customers.AttachAsModified(currentCustomer, this.ChangeSet.GetOriginal(currentCustomer)); } public void DeleteCustomer(Customer customer) { if ((customer.EntityState != EntityState.Detached)) { this.ObjectContext.ObjectStateManager. ChangeObjectState(customer, EntityState.Deleted); } else { this.ObjectContext.Customers.Attach(customer); this.ObjectContext.Customers.DeleteObject(customer); } } } }
Na pasku menu wybierz polecenie budować, Budować NorthwindService.
Na pasku menu wybierz Plik, Zapisz wszystkie.
Tworzenie aplikacji LightSwitch
Ostatnim krokiem jest utworzenie aplikacji LightSwitch, która zajmie usługi WCF RIA, która właśnie została utworzona.
Aby utworzyć aplikację
Na pasku menu wybierz Plik, Nowy, projekt.
W Nowy projekt okno dialogowe Wybierz LightSwitch kategorii, a następnie wybrać jedną Aplikacji LightSwitch (Visual Basic) lub Aplikacji LightSwitch (Visual C#) szablon projektu.
W Nazwa tekst wprowadź Northwind, a następnie wybierz polecenie OK przycisk.
Na pasku menu wybierz polecenie pliku, Dodaj, Istniejącego projektu.
Wybierz polecenie NorthwindService projektu, a następnie wybierz Otwórz.
W Solution Explorer, w Northwind projekt, otwórz menu skrótów dla Źródła danych węzła, a następnie wybierz polecenie Dodaj źródło danych.
W Kreator dołączania źródła danych, wybierz polecenie Usługi WCF RIA ikona.
Wybierz polecenie Dalej przycisk, a następnie wybierz Dodaj odwołanie przycisk.
W Reference Manager okno dialogowe Wybierz Przeglądaj przycisk.
W folderze Bin\Release projektu NorthWindService, wybierz polecenie NorthwindService.dll pliku, a następnie wybierz Dodaj przycisk.
Wybierz polecenie OK przycisk, aby zamknąć okno dialogowe, a następnie wybierz Dalej przycisk.
Na Zaznacz obiekty źródła danych stronie, zaznacz jednostek pole wyboru, a następnie wybierz Zakończ przycisk.
W Solution Explorer, w NorthwindService projektu, a następnie kliknij polecenie Otwórz App.Config pliku.
W ConnectionStrings sekcji, skopiuj ciągu połączenia, który rozpoczyna się od <add name’”NorthwindEntities”.
W Solution Explorer, wybierz polecenie Northwind projektu, a następnie wybierz Widoku pliku z listy na pasku narzędzi.
Rozwiń węzeł serwera węzła, a następnie wybierz polecenie Web.config.
W sekcji ConnectionStrings Wklej ciągu połączenia, który został skopiowany.
Masz teraz pełni funkcjonującego źródła danych, które można wstawiać, aktualizowanie i usuwanie rekordów przy użyciu procedur przechowywanych.
Następne kroki
Można utworzyć sieci LightSwitch ekranów i logiki biznesowej w zwykły sposób i szybko i łatwo zrobić funkcjonalną aplikację za pomocą procedur przechowywanych.
Zobacz też
Zadania
Porady: wykonywanie w programie LightSwitch procedury przechowywanej