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:
Přístup k verzi systému SQL Server ukázkové databáze Northwind. Další informace naleznete v tématu Postupy: Instalace ukázkových databází.
UpdateCustomer uložené procedury pro databázi Northwind. Další informace naleznete v tématu Návod: Vytvoření uložené procedury aktualizace pro tabulku zákazníků Northwind.
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
Pomocí nabídky Soubor vytvořte nový projekt.
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ů.
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
Na projektu nabídce klepněte na tlačítko přidat novou položku.
Klikněte na tlačítko třídy LINQ to SQL šablonu a zadejte Northwind.dbml v název pole.
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ů
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.
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).
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
Na sestavení nabídce klepněte na tlačítko sestavení ORDesignerWalkthrough sestavení projektu.
V nabídce Data klikněte na položku Zobrazit zdroje dat.
V okně Zdroje dat klikněte na tlačítko Přidat nový zdroj dat.
Klikněte na tlačítko objektu na zvolte typ zdroje dat stránku a potom klikněte na tlačítko Další.
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.
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
Otevřít Form1 v zobrazení návrhu.
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.
Přetažením objednávky uzel z zdroje dat okna do Form1. Umístěte jej pod CustomerDataGridView.
Otevřít Form1 v zobrazení kódu.
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();
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
Stiskněte klávesu F5.
Ověřte, že data se zobrazí v mřížky.
Vyberte zákazníka.
Ověřte, zda objednávky zobrazené pro vybraného odběratele.
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í
Otevřít Form1 v zobrazení návrhu.
Vyberte možnost uložit na tlačítko CustomerBindingNavigator. (Tlačítko s popiskem s ikonou disketu.)
V vlastnosti okna, nastavte povoleno vlastnost, která má True.
Poklepejte na ikonu Uložit tlačítko vytvořit obslužnou rutinu a přepnutí do editoru kódu.
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
Stiskněte klávesu F5.
Upravte některá data v obou mřížky. (Opustí upravený řádek v mřížce potvrzení změn v rámci procesu.)
Klikněte na tlačítko Uložit k uložení změn zpět do databáze.
Zavřete formulář.
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#).
Př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
Otevřít Form1 v zobrazení návrhu.
Přidat textové pole do formuláře a nastavte jeho název vlastnost, která má CityTextBox.
Přidat tlačítko do formuláře a nastavit následující vlastnosti:
Název = RunQueryButton
Text = spustit dotaz
Datovou 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
Stiskněte klávesu F5.
Typ Londýn do textového pole.
Klikněte na tlačítko spustit dotaz tlačítko.
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
Otevřít LINQ do SQL souborů v O/R Designer. (Klikněte dvakrát Northwind.dbml souborů v Průzkumníka řešení.)
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.
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).
Vyberte zákazníka entity třídy v O/R Designer.
V vlastnosti okna, klepněte na příkaz k přepsání. (Vložit, aktualizace, nebo odstranit). V tomto příkladu vyberte aktualizace vlastnost.
Klepnutím na tlačítko se třemi tečkami Další použití Runtime otevřete konfigurovat chování dialogové okno.
Vyberte přizpůsobit.
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 usnadňuje sledování změn a vytváření příkazy, které kontrolovat porušení souběžnosti.
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é).
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
Stiskněte klávesu F5.
Vyhledejte kontakt sloupce v mřížce pro ALFKI.
Změnit jméno z Maria Anders k Anders.
Přechod vypnout řádek potvrďte změnu.
Klikněte na tlačítko Uložit tlačítko.
Zavřete formulář.
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ří:
Přidání více uložené procedury, které má být použit pro příkazy Insert a Delete. Další informace naleznete v tématu How to: Assign Stored Procedures to Perform Updates, Inserts, and Deletes (O/R Designer).
Vytvořte různé dotazy LINQ vrátit filtrovaná data. Další informace naleznete v tématu How to: Query for Information.
Viz také
Koncepty
Další zdroje
Object Relational Designer (O/R Designer)
LINQ General Programming Guide
LINQ Documentation Roadmap
Novinky ve vývoji datových aplikací v sadě Visual Studio 2012