Sdílet prostřednictvím


Walkthrough: Creating LINQ to SQL Classes (O/R Designer)

Object Relational Designer (O/R Designer) Poskytuje vizuální návrhovou plochu pro vytváření a úpravy LINQ to SQL třídy (entity třídy), které jsou založeny na objekty v databázi. Pomocí LINQ to SQL [LINQ to SQL], můžete získat přístup k databáze SQL Server s technologií LINQ. Další informace naleznete v tématu LINQ (Language-Integrated Query).

Tento průvodce poskytuje kroky, které je třeba provést při vytváření LINQ na SQL entity třídy mapovat na tabulky Zákazníci a objednávky v databázi Northwind a zobrazit data formuláře systému Windows. Kromě kroků pro zobrazení dat z tabulky, kroky pro vytvoření vazby dat k LINQ dotazu jsou také k dispozici. Na závěr kroky pro používání uložené procedury k nahrazení ve výchozím nastavení LINQ to SQL logiku pro odesílání aktualizací ze třídy entit do databáze nástroje jsou k dispozici.

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

  • Přidat LINQ to SQL souboru do projektu.

  • Vytvoření nové entity třídy, které jsou namapovány na souvisejících tabulek v databázi.

  • Vytvořte zdroj dat objektu, který odkazuje na třídy entit.

  • Vytvořte formulář Windows obsahující ovládací prvky, které se váží k třídy entit.

  • Přidejte kód k načtení a uložení dat mezi třídy entit a databází.

  • Vytvořit jednoduchou LINQ dotaz a zobrazit výsledky ve formuláři.

  • Přidání uložené procedury pro O/R Designer.

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

Požadavky

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

Vytvoření aplikace pro systém Windows

Vzhledem k tomu, že pracujete s LINQ to SQL třídy a zobrazení dat formuláře systému Windows, je prvním krokem v tomto návodu k vytvoření nové aplikace Windows Forms.

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 Customizing Development Settings in Visual Studio.

Vytvoření nového projektu aplikace pro systém Windows

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

  2. Pojmenujte tento projekt ORDesignerWalkthrough.

    Poznámka

    O/R Designer Je podporována v Visual Basic a projekty jazyka C#, tak vytvoření nového projektu 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 Vývoj klientských aplikací s použitím rozhraní .NET Framework.

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

Přidání LINQ do SQL třídy souboru do projektu (otevření Návrháře relací objektů)

Třídy entit jsou vytvořené a uložené v LINQ to SQL tříd dbml (soubory). O/R Designer Při otevření souboru DBML. Přidat soubory dbml projekty výběrem třídy LINQ to SQL šablona v přidat novou položku dialogové okno.

Chcete-li přidat soubor DBML do projektu

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

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

  3. 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.

Po přidání nového jazyka LINQ to SQL souboru do projektu, spustí se prázdný návrhovou plochu zobrazí dvě samostatné podokna. V podokně na levé straně je podokně entit, kde zobrazení a nakonfigurovat třídy entit. V podokně na pravé straně je podokno metody, které zobrazuje DataContext metody přidané do návrháře. Pokud není zobrazeno podokno metody klepněte pravým tlačítkem myši na prázdné místo v podokně entity a klikněte na tlačítko zobrazit podokno metody. Představuje celou prázdný povrchu DataContext chtít nakonfigurovat. DataContext Název odpovídá názvu, který jste dali souboru DBML. V tomto návodu, protože pojmenovat LINQ to SQL souboru Northwind.dbml, DataContext názvem NorthwindDataContext. To lze ověřit klepnutím na prázdnou oblast na návrháři a kontroly vlastnosti okna.

Poznámka

DataContext Třída obsahuje metody a vlastnosti pro připojení k databázi a manipulaci s daty v databázi (například provádění vloží, aktualizaci a odstraňování).Další informace naleznete v tématu DataContext Methods (O/R Designer).

Vytváření zákazníků a pořadí Entity třídy

Vytvořit 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ýsledkem je LINQ to SQL entity třídu, která mapuje na tabulky v databázi.

Chcete-li přidat třídu entity zákazníků do Návrháře relací objektů

  1. V Průzkumníku serveru/Průzkumník databáze, vyhledání tabulek ve verzi systému SQL Server 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 (Visual Studio).Další informace naleznete v tématu How to: Turn Pluralization On and Off (O/R Designer).

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

    Třídu entity s názvem pořadí je vytvořen, spolu s Customer_Order přidružení (vztahu) zákazníka třídy entity. Obsahuje vlastnosti, které odpovídají sloupcům v tabulce objednávky.

    Poznámka

    Třída entity se nazývá pořadí protože reprezentuje jednoduché řazení.Nadřazené třídy (zákazníka) má objednávky vlastnost, která představuje kolekci objednávky pro tohoto konkrétního zákazníka.Další informace o LINQ přidružení SQL, naleznete v části How to: Create an Association (Relationship) Between LINQ to SQL Classes (O/R Designer).

Vytvoření objektový zdroj dat s třídu Customer Entity

Třídy entit, stejně jako další třídy, které mají veřejné vlastnosti lze použít jako zdroje dat objektu. Mohou být přidány do zdroje dat okna a přetáhnout do formulářů za účelem vytvoření vázaného na data ovládacích prvků (ovládací prvky, které se váží k hodnotám ve veřejné vlastnosti objektu). Přidat třídy entity k zdroje dat okna spuštěním Průvodce konfigurací zdroje dat a klepnutím na tlačítko objektu pro zdroj dat v průvodci.

Chcete-li přidat zákazníka jako zdroj dat objektu v okně zdroje dat

  1. Na sestavení nabídce klepněte na tlačítko sestavení ORDesignerWalkthrough sestavení projektu.

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

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

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

  5. Rozbalte položku ORDesignerWalkthrough uzlu (uzel s názvem projektu) 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.

  6. 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í ovládacích prvků vázaného na Data pro zobrazení dat formuláře systému Windows

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

Chcete-li přidat ovládací prvky vázané na třídy entit

  1. Otevřít 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. Přetažením objednávky uzel z zdroje dat okna do Form1. Umístěte jej pod CustomerDataGridView.

  4. Otevřít Form1 v zobrazení kódu.

  5. 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();
    
  6. 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;
    

Testování aplikace

Spusťte aplikaci. V tomto okamžiku formulář obsahuje jeden DataGridView zobrazení dat z tabulky Zákazníci a druhou DataGridView zobrazení dat z objednávky vybraného odběratele.

Poznámka

Všimněte si, že ukládání tlačítko není k dispozici.(Budete implementovat funkce v následující části uložení.)

Testování aplikace

  1. Stiskněte klávesu F5.

  2. Ověřte, že data se zobrazí v mřížky.

  3. Vyberte zákazníka.

  4. Ověřte, zda objednávky zobrazené pro vybraného odběratele.

  5. Zavřete formulář. (Na ladění nabídce klepněte na tlačítko Zastavit ladění.)

Implementace funkce uložení

Jak je uvedeno dříve, 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 po vytvoření ovládacích prvků vázaného na data pro objekt zdroje dat uložte změněná data do formuláře. Tato část popisuje postup pro povolení uložení tlačítko a implementovat funkce pro uložení LINQ to SQL objektů.

Chcete-li implementovat funkce uložení

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

  2. Vyberte možnost uložit na tlačítko CustomerBindingNavigator. (Tlačítko s popiskem 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:

    Try
        NorthwindDataContext1.SubmitChanges()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
    
    try
    {
        northwindDataContext1.SubmitChanges();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    

Testování aplikace

Spusťte aplikaci. Ukládání tlačítko by měly být povoleny, a je k dispozici možnost uložit data.

Testování aplikace

  1. Stiskněte klávesu F5.

  2. Upravte některá data v obou mřížky. (Opustí upravený řádek v mřížce potvrzení změn v rámci procesu.)

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

  4. Zavřete formulář.

  5. Stisknutím klávesy F5 a ověřte, že byly trvalé změny (nebo nalézt v tabulce v databázi a ověřte, zda byly uloženy změny).

Vazbu na dotazy LINQ

Kromě CustomerBindingSource k vazbě DataContext, můžete také navázat přímo na LINQ dotazy. Další informace o tom, jak vytvořit LINQ dotazy, podívejte se na téma Úvod do dotazů LINQ (C#).

Bb384428.collapse_all(cs-cz,VS.140).gifPřidání do formuláře tlačítko a textové pole

Další informace o vytvoření vazby ovládacích prvků LINQ dotazy, přidání ovládacích prvků formuláře, které vám umožní zadat parametr dotazu a pak spusťte dotaz.

Přidání ovládacích prvků formuláře

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

  2. Přidat textové pole do formuláře a nastavte jeho název vlastnost, která má CityTextBox.

  3. Přidat tlačítko do formuláře a nastavit následující vlastnosti:

    • Název = RunQueryButton

    • Text = spustit dotaz

Bb384428.collapse_all(cs-cz,VS.140).gifDatovou vazbu pro dotaz LINQ

Přidejte kód pro spuštění LINQ dotazu. Dotaz používá hodnotu zadanou do CityTextBox jako parametr dotazu.

Pro vytvoření vazby s LINQ dotaz

  • Klikněte dvakrát RunQueryButton a přidejte následující kód, který RunQueryButton_click obslužná rutina události:

    Dim CustomersQuery = From customers in NorthwindDataContext1.Customers _
        Where customers.City = CityTextBox.Text _
        Select customers
    
    CustomerBindingSource.DataSource = CustomersQuery
    
    var CustomersQuery = from customers in northwindDataContext1.Customers
                          where customers.City == CityTextBox.Text
                          select customers;
    
    customerBindingSource.DataSource = CustomersQuery;
    

Testování aplikace

Spusťte aplikaci. Nyní můžete vznést dotaz pro zákazníky v konkrétním městě.

Testování aplikace

  1. Stiskněte klávesu F5.

  2. Typ Londýn do textového pole.

  3. Klikněte na tlačítko spustit dotaz tlačítko.

  4. Ověřte, že pouze zákazníci, kteří mají hodnotu z Londýn v jejich města jsou zobrazeny vlastnosti.

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

Ve výchozím nastavení je poskytována logiku pro provedení aktualizace LINQ to SQL modulu runtime. Modul runtime vytvoří výchozí vkládání, aktualizaci a odstraňování příkazy, které jsou založeny na příkazu Select, který slouží k naplnění třídě entity s daty. 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í nezbytné k manipulaci 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 spojených tabulek. 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.

Poznámka

V této části vyžaduje dostupnost Další 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.

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

  1. Otevřít LINQ do SQL souborů v 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 UpdateCustomers uložené procedury.

  3. Přetažením UpdateCustomers uložené procedury do O/R Designer.

    UpdateCustomers uložená procedura je přidán 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, klepněte na příkaz k přepsání. (Vložit, aktualizace, nebo odstranit). V tomto příkladu vyberte aktualizace vlastnost.

  6. Klepnutím na tlačítko se třemi tečkami Další použití Runtime otevřete konfigurovat chování dialogové okno.

  7. Vyberte přizpůsobit.

  8. Vyberte UpdateCustomers metodu v vlastní seznamu.

  9. 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 usnadňuje sledování změn a vytváření příkazy, které kontrolovat porušení souběžnosti.

  10. Mapování původní argumenty metody (Original_název argumentu ArgumentName) na původní vlastnosti (položka název vlastnosti (původní)). V tomto návodu, je nutné namapovat Original_CustomerID argument ID zákazníka (původní) 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í byla změněna a již se shodují mezi tabulkou a třídě entity, bude pravděpodobně nutné vybrat vlastnost ekvivalentní třídy k mapování na, pokud Návrhář 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é).

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

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. Vyhledejte kontakt sloupce v mřížce pro ALFKI.

  3. Změnit jméno z Maria Anders k Anders.

  4. Přechod vypnout řádek potvrďte změnu.

  5. Klikněte na tlačítko Uložit tlačítko.

  6. Zavřete formulář.

  7. Stisknutím klávesy F5 spusťte aplikaci znovu a ověřte, že se zobrazí pouze Anders v kontakt sloupec pro ALFKI.

Další kroky

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

Viz také

Koncepty

O/R Designer Overview

Další zdroje

Object Relational Designer (O/R Designer)

LINQ to SQL [LINQ to SQL]

LINQ General Programming Guide

LINQ to ADO.NET

LINQ Documentation Roadmap

Novinky ve vývoji datových aplikací v sadě Visual Studio 2012

Přístup k datům v sadě Visual Studio