Sdílet prostřednictvím


Postupy: Aktualizace záznamů pomocí uložené procedury

Nelze volat uloženou proceduru v databázi serveru SQL Server přímo z LightSwitch, ale je možné vytvořit služby Windows Communication Foundation (WCF) Rich Internet Application (RIA) umožňuje zobrazit uložené procedury a potom přístup ke službě z vašeho LightSwitch app.Tento návod ukazuje, jak vložit, aktualizovat a odstranit záznamy zákazníků v LightSwitch aplikace pomocí uložené procedury a služby WCF RIA.

Mnoho správců databáze neumožňuje přímý přístup k tabulkám, místo vystavení zobrazení určená jen pro čtení a poskytování uložené procedury pro vložení, aktualizaci a odstraňování záznamů.LightSwitchnerozpoznává uložené procedury, takže databáze, která se opírá o uložených procedur aktualizovat záznamy zpočátku zdát nebude.Pokud tak učiníte trochu práce navíc, můžete použít ve skutečnosti tyto databáze z LightSwitch.

Požadavky

Tento návod používá databázi Northwind z LightSwitch Seznámení s kurzu.Další informace naleznete v tématu Instalace databáze Northwind vzorku.

Vytvoření uložené procedury

Ve většině případů přistupujete uložené procedury, které již existují v databázi.Databáze Northwind neobsahuje nezbytné uložené procedury pro vložení, aktualizaci a odstranění záznamů zákazníků, takže je třeba přidat.

Chcete-li přidat uložené procedury

  1. V řádku nabídek zvolte zobrazení, Průzkumník objektů serveru SQL.

  2. V Průzkumník objektů serveru SQL okno, rozbalte NORTHWIND databáze uzlu a pak zvolte programování.

  3. Rozbalte programování uzlu a pak zvolte Uložené procedury.

  4. Otevření místní nabídky pro Uložené procedurya pak zvolte Přidat novou uloženou proceduru.

  5. V Editor kódu, obsah nahraďte následující kód jazyka Transact-SQL a potom zvolte aktualizace tlačítko.

    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)
    
  6. V Aktualizace databáze náhled dialogové okno pole, zvolte Aktualizace databáze tlačítko.

    InsertCustomer uložená procedura je přidáno do databáze.

  7. Otevření místní nabídky pro Uložené procedurya pak zvolte Přidat novou uloženou proceduru.

  8. V Editor kódu, obsah nahraďte následující kód jazyka Transact-SQL a potom zvolte aktualizace tlačítko.

    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
    
  9. V Aktualizace databáze náhled dialogové okno pole, zvolte Aktualizace databáze tlačítko.

    UpdateCustomer uložená procedura je přidáno do databáze.

  10. Otevření místní nabídky pro Uložené procedurya pak zvolte Přidat novou uloženou proceduru.

  11. V Editor kódu, obsah nahraďte následující kód jazyka Transact-SQL a potom zvolte aktualizace tlačítko.

    CREATE PROCEDURE [dbo].[DeleteCustomer]
        @CustomerID nchar(5)
    AS
    
    DELETE FROM [dbo].[Customers]
     WHERE CustomerID=@CustomerID
    
  12. V Aktualizace databáze náhled dialogové okno pole, zvolte Aktualizace databáze tlačítko.

    DeleteCustomer uložená procedura je přidáno do databáze.

Vytvořit datový model entity

Dalším krokem je vytvoření datového modelu Entity Framework, který bude vkládání, aktualizaci a odstraňování záznamů pomocí uložené procedury, které jste právě přidali.

Chcete-li vytvořit datový model

  1. V panelu nabídek zvolte Soubor, Nový, Projekt.

  2. V Nový projekt dialogové okno pole, rozbalte položku buď jazyka Visual Basic nebo Visual C# uzlu a pak zvolte Knihovny tříd šablony.

  3. V jméno text zadejte NorthwindServicea pak zvolte OK tlačítko.

  4. V Průzkumníku, otevřete místní nabídku pro MyProject uzlu a pak zvolte otevřete.

  5. V cílové rozhraní seznam, zvolte rozhraní.NET Framework 4.

  6. V Průzkumníku, otevřete místní nabídku pro NorthwindService, zvolte Přidata pak zvolte Nová položka.

  7. V Přidat novou položku dialogové okno pole, zvolte ADO.NET Entity Data Model šablony.

  8. V jméno text zadejte Northwind.edmxa pak zvolte Přidat tlačítko.

  9. V Průvodce entitního datového modelu, zvolte Generovat z databáze ikonu a pak zvolte Další tlačítko.

  10. Na Vybrat datové připojení stránky, zvolte Nové připojení tlačítko.

  11. V Vlastnosti připojení v dialogovém okně pole název serveru text zadejte název serveru, kde je nainstalována databáze Northwind.

    Poznámka k jazyku J#Poznámka k jazyku J#

    Můžete najít název v Průzkumník objektů serveru SQL.

  12. V Vyberte nebo zadejte název databáze text zadejte Northwind.

  13. Zvolte OK tlačítko a poté zvolte Další tlačítko.

  14. Na Zvolte vaše databázové objekty a nastavení stránky, rozbalte položku tabulky uzel a pak vyberte Zákazníci políčko.

  15. Rozbalte uložené procedury a funkce uzel, vyberte DeleteCustomer, InsertCustomer, a UpdateCustomer políček a pak zvolte Dokončit tlačítko.

    Je generován entity model a Northwind.edmx se objeví v databázovém diagramu.

    [!POZNÁMKA]

    Pokud Upozornění zabezpečení se zobrazí dialogové okno, vyberte OK tlačítko spustit šablonu.

  16. Otevření místní nabídky pro Zákazník entity a pak zvolte Uložená procedura mapování.

  17. V Podrobnosti mapování okno, v < vyberte Vložit funkci > seznam, zvolte InsertCustomer.

  18. V < vyberte funkci Update > seznam, zvolte UpdateCustomer.

  19. V < vyberte funkci Delete > vyberte DeleteCustomer.

  20. Zavřít Northwind.edmx Návrhář.

  21. V Průzkumníku, zvolte Zobrazit všechny soubory tlačítko na panelu nástrojů.

  22. Rozbalte uzel pro Northwind.edmxa pak odstraňte Northwind.tt a Northwind.Context.tt soubory.

  23. Otevřít Northwind.edmx soubor a zvýrazněte prázdné znaky mimo Zákazník entity.

  24. V Vlastnosti okna, změňte hodnotu Strategie pro generování kódu vlastnost výchozí.

  25. V řádku nabídek zvolte sestavení, Sestavení NorthwindService.

    Nyní máte datového modelu Entity Framework, který bude vkládání, aktualizaci a odstraňování záznamů pomocí uložené procedury.

Vytvořit služby WCF RIA

Je-li vytvořit službu WCF RIA, vaše LightSwitch app může spotřebovat datového modelu Entity Framework jako zdroj dat.

Chcete-li vytvořit službu

  1. V Průzkumníku, otevřete místní nabídku pro NorthwindService projektu, zvolte Přidata pak zvolte Nová položka.

  2. V Přidat novou položku dialogové okno pole, zvolte Třídy doménové služby šablony.

  3. V jméno text zadejte NorthwindServicea pak zvolte Přidat tlačítko.

  4. V Přidat novou třídu doménové služby dialogové okno pole, zvolte OK tlačítko.

  5. V Průzkumníku, otevřete místní nabídku pro Northwind službya pak zvolte Přidat odkaz na.

  6. Zvolte rozšíření uzel, vyberte System.ServiceModel.DomainServices.EntityFramework políčko a pak zvolte OK tlačítko.

  7. Přidejte následující kód, který NorthwindService třídy:

    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);
                }
            }
        }
    }
    
  8. V řádku nabídek zvolte sestavení, Sestavení NorthwindService.

  9. V panelu nabídek vyberte položku Soubor a Uložit vše.

Vytvoření aplikace LightSwitch

Posledním krokem je vytvoření LightSwitch app, který bude využívat služby WCF RIA, který jste právě vytvořili.

Vytvoření aplikace

  1. V panelu nabídek zvolte Soubor, Nový, Projekt.

  2. V Nový projekt dialogové okno pole, zvolte LightSwitch kategorie a pak zvolte buď LightSwitch aplikace (Visual Basic) nebo LightSwitch aplikace (Visual C#) šablony projektu.

  3. V jméno text zadejte Northwinda pak zvolte OK tlačítko.

  4. V řádku nabídek zvolte soubor, Přidat, Existující projekt.

  5. Zvolte NorthwindService projektu a poté zvolte Open.

  6. V Průzkumníku, v Northwind projektu, otevřete místní nabídku pro Zdroje dat uzlu a pak zvolte Přidat zdroj dat.

  7. V Připojit Data Source Wizard, zvolte Služby WCF RIA ikonu.

  8. Zvolte Další tlačítko a poté zvolte Přidat odkaz na tlačítko.

  9. V Reference Manager dialogové okno pole, zvolte Procházet tlačítko.

  10. Ve složce Bin\Release projektu NorthWindService, zvolte NorthwindService.dll souboru a pak zvolte Přidat tlačítko.

  11. Zvolte OK tlačítko zavřete dialogové okno a pak zvolte Další tlačítko.

  12. Na Vyberte objekty zdroje dat stránky, vyberte entity políčko a pak zvolte Dokončit tlačítko.

  13. V Průzkumníku, v NorthwindService otevřeného projekt App.Config souboru.

  14. V ConnectionStrings oddílu, zkopírujte připojovací řetězec, který začíná <add name’”NorthwindEntities”.

  15. V Průzkumníku, zvolte Northwind projektu a poté zvolte Zobrazení souboru ze seznamu na panelu nástrojů.

  16. Rozbalte Server uzlu a pak zvolte Web.config.

  17. V sekci ConnectionStrings vložte připojovací řetězec, který jste zkopírovali.

    Nyní máte plně funkční zdroj dat, který lze vložit, aktualizovat a odstranit záznamy pomocí uložené procedury.

Další kroky

Můžete vytvořit vaše LightSwitch obrazovky a obchodní logiku obvyklým způsobem a rychle a snadno vytvořit fungující aplikace pomocí uložené procedury.

Viz také

Úkoly

Postupy: Provedení uložené procedury v aplikaci LightSwitch

Další zdroje

Data: Informace za aplikace