Sdílet prostřednictvím


Návod: Přizpůsobení vložit, aktualizovat a odstraňovat chování tříd entit

 

Publikováno: duben 2016

Technologie LINQ to SQL nástroje v sadě Visual Studio Poskytuje vizuální návrhovou plochu pro vytváření a úpravy Technologie LINQ to SQL třídy (entity třídy), které jsou založeny na objekty v databázi. Pomocí LINQ to SQL, můžete použít technologii LINQ pro přístup k databázím SQL. Další informace naleznete v tématu LINQ (Language-Integrated Query).

Ve výchozím nastavení je poskytována logiku pro provedení aktualizace Technologie LINQ to SQL modulu runtime. Modul runtime vytvoří výchozí příkazy vkládání, aktualizaci a odstraňování na základě schématu tabulky (definice sloupců a informace o primárním klíči). Pokud nechcete použít výchozí chování, můžete konfigurovat chování aktualizace a označíte uložených procedur specifických pro provádění nezbytné vloží, aktualizace, a odstraní potřebné pro práci s daty v databázi. Můžete také provést při výchozí chování není vytvořeno, například když vaše entity třídy mapování na zobrazení. Kromě toho můžete přepsat výchozí chování aktualizace databáze vyžaduje přístup k tabulce prostřednictvím uložené procedury. Další informace naleznete v tématu Customizing Operations By Using Stored Procedures.

Poznámka

Tento průvodce vyžaduje dostupnost InsertCustomer, UpdateCustomer, a DeleteCustomer uložené procedury pro databázi Northwind. Další podrobnosti o tom, jak vytvářet tyto uložené procedury, naleznete v Návod: Vytvoření uložené procedury aktualizace pro tabulku zákazníků Northwind.

Tento průvodce poskytuje kroky, které je nutné dodržet přepsat výchozí nastavení LINQ SQL runtime chování pro ukládání dat zpět k databázi pomocí uložené procedury.

V tomto návodu se dozvíte, jak lze provádět následující úlohy:

  • Vytvořit nové aplikace Windows Forms a přidat Technologie LINQ to SQL soubor do něj.

  • Vytvoří třídu entity, která je mapován do tabulky Zákazníci Northwind.

  • Vytvořte zdroj dat objektu, který odkazuje na LINQ to SQL zákazníka třídy.

  • Vytvoření formuláře systému Windows, který obsahuje DataGridView který je vázána na třídu Customer.

  • Provede výjimkou funkce pro daný formulář.

  • Vytvořit DataContext metody přidáním uložené procedury k O/R Designer.

  • Nakonfigurujte třídu Customer ke vložení, aktualizaci a odstraňování použít uložené procedury.

Požadavky

K dokončení tohoto postupu, budete potřebovat:

Vytváření aplikací a přidání LINQ do SQL třídy

Vzhledem k tomu, že pracujete s Technologie LINQ to SQL třídy a zobrazení dat formuláře systému Windows, vytvořte novou aplikaci pro Windows Forms a přidejte LINQ do souboru třídy SQL.

Poznámka

Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení integrovaného vývojového prostředí.

Vytvořte nový projekt aplikace systému Windows, který obsahuje LINQ na SQL třídy

  1. Pomocí nabídky Soubor vytvořte nový projekt.

  2. Pojmenujte tento projekt UpdatingwithSProcsWalkthrough.

    Poznámka

    O/R Designer Je podporována v Visual Basic a projekty jazyka C#. Proto můžete vytvořte nový projekt v jednom z těchto jazyků.

  3. Klikněte na tlačítko Windows Forms aplikace šablonu a klikněte na tlačítko OK. Další informace naleznete v tématu Klientské aplikace.

    Je vytvořen a přidán do projektu UpdatingwithSProcsWalkthrough Průzkumníka řešení.

  4. Na projektu nabídce klepněte na tlačítko přidat novou položku.

  5. Klikněte na tlačítko třídy LINQ to SQL šablonu a zadejte Northwind.dbml v název pole.

  6. Klikněte na tlačítko Přidat.

    Prázdný prostřednictvím jazyka LINQ k souboru třídy SQL (Northwind.dbml) je přidán do projektu a O/R Designer otevře.

Vytváření třídy Entity zákazníků a zdroj dat objektu

Vytvořit Technologie LINQ to SQL třídy, které jsou namapovány na databázové tabulky přetažením tabulky z Průzkumníku serveru/Průzkumník databáze na O/R Designer. Výsledek je LINQ SQL entity třídy, které mapování na tabulek v databázi. Po vytvoření tříd entit lze použít jako objekt zdroje dat stejně jako další třídy, které mají veřejné vlastnosti.

Vytvoří třídu entity zákazníků a nakonfigurovat zdroj dat

  1. V Průzkumníku serveru/Průzkumník databáze, vyhledejte tabulky Zákazník v systému SQL Server verze ukázkové databáze Northwind. Další informace naleznete v tématu Postupy: Připojení k databázi Northwind.

  2. Přetažením zákazníci uzel z Průzkumníku serveru/Průzkumník databáze na O/R Designer povrchu.

    Třídu entity s názvem zákazníka je vytvořen. Obsahuje vlastnosti, které odpovídají sloupcům v tabulce Zákazníci. Třída entity se nazývá zákazníka (není zákazníci) vzhledem k tomu, že představuje jediného odběratele z tabulky Zákazníci.

    Poznámka

    Toto chování přejmenování se nazývá pluralization. Ji lze zapnout nebo vypnout Dialogové okno Možnosti. Další informace naleznete v tématu Postupy: vypnutí pluralizační a zapnutí (Návrhář relací objektů).

  3. Na sestavení nabídce klepněte na tlačítko sestavení UpdatingwithSProcsWalkthrough sestavení projektu.

  4. V nabídce Data klikněte na položku Zobrazit zdroje dat.

  5. V okně Zdroje dat klikněte na tlačítko Přidat nový zdroj dat.

  6. Klikněte na tlačítko objektu na zvolte typ zdroje dat stránku a potom klikněte na tlačítko Další.

  7. Rozbalte položku UpdatingwithSProcsWalkthrough uzel a vyhledejte a vyberte zákazníka třídy.

    Poznámka

    Pokud zákazníka třída není k dispozici, ukončete průvodce, sestavení projektu a opakujte akci.

  8. Klikněte na tlačítko Dokončit vytvořit zdroj dat a přidat zákazníka třídy entity zdroje dat okna.

Vytváření DataGridView zobrazíte zákaznická Data formuláře systému Windows

Vytvořit ovládací prvky, které se váží k třídy entit přetažením Technologie LINQ to SQL položek ze zdroje dat zdroje dat okna do formuláře systému Windows.

Chcete-li přidat ovládací prvky, které se váží k třídy entit

  1. Otevřete Form1 v zobrazení návrhu.

  2. Z zdroje dat okna, přetáhněte zákazníka uzel na Form1.

    Poznámka

    Chcete-li zobrazit zdroje dat okna, klikněte na tlačítko zobrazit zdroje dat na Data nabídky.

  3. Otevřete Form1 v editoru kódu.

  4. Formulář globální do formuláře mimo jakékoli konkrétní metody, ale v rámci třída Form1 přidejte následující kód:

    Private NorthwindDataContext1 As New NorthwindDataContext  
    
    private NorthwindDataContext northwindDataContext1  
        = new NorthwindDataContext();  
    
  5. Vytvoření obslužné rutiny pro Form_Load události a obslužné rutiny přidejte následující kód:

    CustomerBindingSource.DataSource = NorthwindDataContext1.Customers  
    
    customerBindingSource.DataSource  
        = northwindDataContext1.Customers;  
    

Implementace funkce uložení

Ve výchozím nastavení ukládání tlačítko není povolen a uložit funkce není implementována. Také kód není přidán automaticky při vytvoření ovládacích prvků vázaného na data pro objekt zdroje dat uložit změněná data do databáze. Tato část popisuje postup pro povolení uložení tlačítko a implementovat funkce pro uložení Technologie LINQ to SQL objektů.

Chcete-li implementovat funkce uložení

  1. Otevřete Form1 v zobrazení návrhu.

  2. Vyberte možnost uložit na tlačítko CustomerBindingNavigator (tlačítko s ikonou disketu).

  3. V vlastnosti okna, nastavte povoleno vlastnost, která má True.

  4. Poklepejte na ikonu Uložit tlačítko vytvořit obslužnou rutinu a přepnutí do editoru kódu.

  5. Přidejte následující kód do ukládání obslužnou rutinu události:

    NorthwindDataContext1.SubmitChanges
    ()  
    
    northwindDataContext1.SubmitChanges();  
    

Přepsání výchozího nastavení pro provádění aktualizací (vloží, aktualizaci a odstraňování)

Chcete-li přepsat výchozí chování aktualizace

  1. Otevřete LINQ v souboru SQL O/R Designer. (Klikněte dvakrát Northwind.dbml souborů v Průzkumníka řešení.)

  2. V Průzkumníku serveru/Průzkumník databáze, rozbalte položku databáze Northwind uložené procedury uzel a vyhledejte InsertCustomers, UpdateCustomers, a DeleteCustomers uložené procedury.

  3. Přetáhněte všechny tři uložené procedury do O/R Designer.

    Uložené procedury jsou přidány do podokna metody jako DataContext metody. Další informace naleznete v tématu DataContext Methods (O/R Designer).

  4. Vyberte zákazníka entity třídy v O/R Designer.

  5. V vlastnosti okna, vyberte možnost vložit vlastnost.

  6. Klikněte na tlačítko se třemi tečkami (...) vedle použití Runtime otevřete konfigurovat chování dialogové okno.

  7. Vyberte přizpůsobit.

  8. Vyberte InsertCustomers metodu v vlastní seznamu.

  9. Klikněte na tlačítko použít uložení konfigurace pro vybrané třídy a chování.

    Poznámka

    Chcete-li konfigurovat chování pro každou třídu/chování kombinaci, dokud po klepnutí na tlačítko použít po provedení každé změny. Pokud změníte třídu nebo chování před klepnutím na použít, poskytuje možnost změny se projeví se zobrazí dialogové okno upozornění.

  10. Vyberte aktualizace v chování seznamu.

  11. Vyberte přizpůsobit.

  12. Vyberte UpdateCustomers metodu v vlastní seznamu.

    Zkontrolovat seznam argumenty metody a vlastnosti třídy a Všimněte si, že jsou uvedeny dvě argumenty metody a dvě vlastnosti třídy pro některé sloupce v tabulce. To výrazně zjednodušuje sledovat změny a vytvářet příkazy, které kontrolovat porušení souběžnosti.

  13. Mapa Original_CustomerID argumentu metody ID zákazníka (původní) třídy vlastnost.

    Poznámka

    Ve výchozím nastavení metoda argumenty provede mapování vlastnosti třídy při názvy odpovídat. Je-li názvy vlastností se změní a už neodpovídá mezi tabulkou a třídě entity, bude pravděpodobně nutné vybrat vlastnost ekvivalentní třídy k mapování na Pokud Návrháře relací objektů nemůže určit správné mapování. Kromě toho je-li metoda argumenty, které nemají platnou třídu vlastnosti přiřadit, můžete nastavit vlastnosti třídy hodnotu (žádné).

  14. Klikněte na tlačítko použít uložení konfigurace pro vybrané třídy a chování.

  15. Vyberte odstranit v chování seznamu.

  16. Vyberte přizpůsobit.

  17. Vyberte DeleteCustomers metodu v vlastní seznamu.

  18. Mapa Original_CustomerID argumentu metody ID zákazníka (původní) třídy vlastnost.

  19. Klikněte na tlačítko OK.

Poznámka

I když není v tomto návodu určitý problém, je to, že Technologie LINQ to SQL zpracovává databáze generované hodnoty pro identitu (automatické zvýšení), rowguidcol (GUID generované databáze) a časové razítko sloupce automaticky během operace INSERT a Update. Databáze generované hodnoty v jiné typy sloupce způsobí neočekávaně hodnotu null. Mají být vráceny hodnoty generované databáze, je třeba ručně nastavit IsDbGenerated k true a AutoSync na jednu z následujících akcí: Always, OnInsert, nebo OnUpdate.

Testování aplikace

Spusťte aplikaci znovu a ověřte, zda UpdateCustomers uložená procedura správně aktualizuje záznam zákazníka v databázi.

Testování aplikace

  1. Stiskněte klávesu F5.

  2. Upravte záznam v tabulce k otestování chování aktualizace.

  3. Přidejte nový záznam k otestování chování vložení.

  4. Klikněte na tlačítko Uložit k uložení změn zpět do databáze.

  5. Zavřete formulář.

  6. Stisknutím klávesy F5 a ověřte, že ukládaný aktualizovaný záznam a nově vloženého záznamu.

  7. Odstranit nový záznam jste vytvořili v kroku 3 k otestování chování odstranit.

  8. Klikněte na možnost uložit tlačítko odeslat provedené změny a odebrat odstraněné záznam z databáze.

  9. Zavřete formulář.

  10. Stisknutím klávesy F5 a ověřte, že byl odebrán odstraněný záznam z databáze.

    Poznámka

    Pokud vaše aplikace používá SQL Server Express Edition, v závislosti na hodnotu kopírovaných do výstupního adresáře vlastnost souboru databáze, změny se nezobrazí při stisknutí klávesy F5 v kroku 10. Další informace naleznete v tématu Postupy: Správa lokálních datových souborů ve vašem projektu.

Další kroky

V závislosti na požadavcích aplikace existuje několik kroků, které chcete provést poté, co vytvoříte Technologie LINQ to SQL třídy entit. Některé vylepšení, kterých můžete dokonce vytvářet do této aplikace, patří:

Viz také

Technologie LINQ to SQL nástroje v sadě Visual Studio
LINQ to SQL
LINQ to SQL Queries
DataContext Methods (O/R Designer)
Postupy: přiřazení uložené procedury k provedení aktualizace, vložení a odstranění (Návrhář relací objektů)
PAVE What's New for Data Application Development in Visual Studio 2012