Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento názorný postup poskytuje základní komplexní scénář LINQ to SQL pro přidávání, úpravy a odstraňování dat v databázi. Pomocí kopie ukázkové databáze Northwind přidáte zákazníka, změníte jméno zákazníka a odstraníte objednávku.
Poznámka:
Počítač může v následujících pokynech zobrazit různé názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Edice sady Visual Studio, kterou máte, a nastavení, která používáte, určují tyto prvky. Další informace najdete v tématu Přizpůsobeníintegrovaného vývojového prostředí (IDE).
Tento návod byl napsán pomocí nastavení vývoje jazyka Visual Basic.
Požadavky
Tento průvodce vyžaduje následující:
Tento názorný postup používá k uložení souborů vyhrazenou složku (c:\linqtest2). Vytvořte tuto složku před zahájením návodu.
Ukázková databáze „Northwind“.
Pokud tuto databázi nemáte na vývojovém počítači, můžete ji stáhnout z webu pro stažení microsoftu. Pokyny najdete v tématu Stažení ukázkových databází. Po stažení databáze zkopírujte soubor northwnd.mdf do složky c:\linqtest2.
Soubor kódu jazyka Visual Basic vygenerovaný z databáze Northwind.
Tento soubor můžete vygenerovat pomocí návrháře relačních objektů nebo nástroje SQLMetal. Tento návod byl napsán pomocí nástroje SQLMetal s následujícím příkazovým řádkem:
sqlmetal /code:"c:\linqtest2\northwind.vb" /language:vb "C:\linqtest2\northwnd.mdf" /pluralize
Další informace najdete v tématu SqlMetal.exe (nástroj pro generování kódu).
Přehled
Tento názorný postup se skládá ze šesti hlavních úloh:
Vytvoření řešení LINQ to SQL v sadě Visual Studio
Přidání souboru kódu databáze do projektu
Vytvoření nového objektu zákazníka
Úprava jména kontaktu zákazníka
Odstranění objednávky
Odesílání těchto změn do databáze Northwind
Vytvoření řešení LINQ to SQL
V tomto prvním úkolu vytvoříte řešení sady Visual Studio, které obsahuje potřebné odkazy na sestavení a spuštění projektu LINQ to SQL.
Vytvoření řešení LINQ to SQL
V nabídce Soubor sady Visual Studio klepněte na tlačítko Nový projekt.
V podokně Typy projektů v dialogovém okně Nový projekt klepněte na položku Visual Basic.
V podokně Šablony klikněte na Konzolová aplikace.
Do pole Název zadejte LinqDataManipulationApp.
Klikněte na OK.
Přidání odkazů a direktiv LINQ
Tento průvodce používá sestavení, která nemusí být nainstalována ve vašem projektu ve výchozím nastavení. Pokud System.Data.Linq v projektu není uvedený jako odkaz (klikněte na Zobrazit všechny soubory v Průzkumníku řešení a rozbalte uzel Reference ), přidejte ho, jak je vysvětleno v následujících krocích.
Jak přidat System.Data.Linq
V Průzkumník řešení klikněte pravým tlačítkem na Odkazy a potom klikněte na Přidat odkaz.
V dialogovém okně Přidat odkaz klikněte na .NET, vyberte sestavení System.Data.Linq a poté klikněte na OK.
Sestavení se přidá do projektu.
V editoru kódu přidejte následující direktivy nad Module1:
Imports System.Data.Linq Imports System.Data.Linq.Mapping
Přidání souboru kódu Northwind do projektu
Tyto kroky předpokládají, že jste k vygenerování souboru kódu z ukázkové databáze Northwind použili nástroj SQLMetal. Další informace najdete v části Požadavky uvedené výše v tomto názorném postupu.
Přidání souboru kódu northwind do projektu
V nabídce Project klikněte na Přidat existující položku.
V dialogovém okně Přidat existující položku přejděte na c:\linqtest2\northwind.vb a klepněte na tlačítko Přidat.
Do projektu se přidá soubor northwind.vb.
Nastavení připojení k databázi
Nejprve otestujte připojení k databázi. Všimněte si zejména, že název databáze Northwnd nemá žádný znak i. Pokud v dalších krocích vygenerujete chyby, projděte si soubor northwind.vb a zjistěte, jak je napsaná částečná třída Northwind.
Nastavení a otestování připojení k databázi
Zadejte nebo vložte následující kód do
Sub Main:' Use a connection string, but connect to ' the temporary copy of the database. Dim db As New Northwnd _ ("C:\linqtest2\northwnd.mdf") ' Keep the console window open after activity stops. Console.ReadLine()Stisknutím klávesy F5 otestujte aplikaci v tomto okamžiku.
Otevře se okno konzoly .
Zavřete aplikaci stisknutím klávesy Enter v okně konzoly nebo kliknutím na Zastavit laděnív nabídce Ladění sady Visual Studio.
Vytvoření nové entity
Vytvoření nové entity je jednoduché. Objekty (například Customer) můžete vytvořit pomocí klíčového New slova.
V této a následující části provádíte změny pouze v místní mezipaměti. Do databáze se neposílají žádné změny, dokud nevoláte SubmitChanges ke konci tohoto názorného postupu.
Přidat nový objekt entity Zákazníka
Vytvořte nový
Customerpřidáním následujícího kódu předConsole.ReadLinevSub Main.' Create the new Customer object. Dim newCust As New Customer() newCust.CompanyName = "AdventureWorks Cafe" newCust.CustomerID = "A3VCA" ' Add the customer to the Customers table. db.Customers.InsertOnSubmit(newCust) Console.WriteLine("Customers matching CA before insert:") Dim custQuery = _ From cust In db.Customers _ Where cust.CustomerID.Contains("CA") _ Select cust For Each cust In custQuery Console.WriteLine("Customer ID: " & cust.CustomerID) NextStisknutím klávesy F5 spustíte ladění řešení.
Výsledky zobrazené v okně konzoly jsou následující:
Customers matching CA before insert:Customer ID: CACTUCustomer ID: RICARVšimněte si, že nový řádek se ve výsledcích nezobrazí. Nová data ještě nebyla odeslána do databáze.
Ladění zastavíte stisknutím klávesy Enter v okně Konzoly.
Aktualizace entity
V následujících krocích načtete Customer objekt a upravíte jednu z jeho vlastností.
Změna názvu zákazníka
Přidejte následující kód výše
Console.ReadLine():Dim existingCust = _ (From cust In db.Customers _ Where cust.CustomerID = "ALFKI" _ Select cust).First() ' Change the contact name of the customer. existingCust.ContactName = "New Contact"
Odstranění entity
Pomocí stejného objektu zákazníka můžete odstranit první objednávku.
Následující kód ukazuje, jak oddělit relace mezi řádky a jak odstranit řádek z databáze.
Odstranit řádek
Přidejte následující kód těsně nad
Console.ReadLine():' Access the first element in the Orders collection. Dim ord0 As Order = existingCust.Orders(0) ' Access the first element in the OrderDetails collection. Dim detail0 As OrderDetail = ord0.OrderDetails(0) ' Display the order to be deleted. Console.WriteLine _ (vbCrLf & "The Order Detail to be deleted is: OrderID = " _ & detail0.OrderID) ' Mark the Order Detail row for deletion from the database. db.OrderDetails.DeleteOnSubmit(detail0)
Odesílání změn do databáze
Posledním krokem potřebným k vytvoření, aktualizaci a odstranění objektů je skutečně odeslat změny do databáze. Bez tohoto kroku jsou změny pouze místní a nezobrazí se ve výsledcích dotazu.
Odeslání změn do databáze
Vložte následující kód těsně nad
Console.ReadLine:db.SubmitChanges()Vložte následující kód (za
SubmitChanges), který zobrazí před a po efektech odeslání změn:Console.WriteLine(vbCrLf & "Customers matching CA after update:") Dim finalQuery = _ From cust In db.Customers _ Where cust.CustomerID.Contains("CA") _ Select cust For Each cust In finalQuery Console.WriteLine("Customer ID: " & cust.CustomerID) NextStisknutím klávesy F5 spustíte ladění řešení.
Okno konzoly se zobrazí takto:
Customers matching CA before update: Customer ID: CACTU Customer ID: RICAR The Order Detail to be deleted is: OrderID = 10643 Customers matching CA after update: Customer ID: A3VCA Customer ID: CACTU Customer ID: RICARLadění zastavíte stisknutím klávesy Enter v okně Konzoly.
Poznámka:
Po přidání nového zákazníka odesláním změn nemůžete toto řešení spustit znovu, jak je, protože nemůžete znovu přidat stejného zákazníka, jak je. Pokud chcete řešení spustit znovu, změňte hodnotu ID zákazníka, které se má přidat.