Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten przewodnik zawiera podstawowy scenariusz LINQ to SQL umożliwiający dodawanie, modyfikowanie i usuwanie danych w bazie danych. Użyjesz kopii przykładowej bazy danych Northwind, aby dodać klienta, zmienić nazwę klienta i usunąć zamówienie.
Uwaga / Notatka
Na komputerze mogą być wyświetlane różne nazwy lub lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio w poniższych instrukcjach. Wersja programu Visual Studio i ustawienia, których używasz, określają te elementy. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.
Ten przewodnik został napisany przy użyciu ustawień programowania języka Visual C#.
Wymagania wstępne
Ten przewodnik wymaga następujących elementów:
Ten przewodnik używa dedykowanego folderu ("c:\linqtest6") do przechowywania plików. Przed rozpoczęciem przewodnika utwórz ten folder.
Przykładowa baza danych Northwind.
Jeśli nie masz tej bazy danych na komputerze dewelopera, możesz pobrać ją z witryny pobierania firmy Microsoft. Aby uzyskać instrukcje, zobacz Pobieranie przykładowych baz danych. Po pobraniu bazy danych skopiuj plik northwnd.mdf do folderu c:\linqtest6.
Plik kodu C# wygenerowany z bazy danych Northwind.
Ten plik można wygenerować przy użyciu narzędzia Object Relational Designer lub SQLMetal. Ten przewodnik został napisany przy użyciu narzędzia SQLMetal z następującym wierszem polecenia:
sqlmetal /code:"c:\linqtest6\northwind.cs" /language:csharp "C:\linqtest6\northwnd.mdf" /pluralize
Aby uzyskać więcej informacji, zobacz SqlMetal.exe (Narzędzie generowania kodu).
Przegląd
Ten przewodnik składa się z sześciu głównych zadań:
Tworzenie rozwiązania LINQ to SQL w programie Visual Studio.
Dodawanie pliku kodu bazy danych do projektu.
Tworzenie nowego obiektu klienta.
Modyfikowanie nazwy kontaktu klienta.
Usuwanie zamówienia.
Przesyłanie tych zmian do bazy danych Northwind.
Tworzenie rozwiązania LINQ to SQL
W tym pierwszym zadaniu utworzysz rozwiązanie programu Visual Studio zawierające niezbędne odwołania do kompilowania i uruchamiania projektu LINQ to SQL.
Aby utworzyć rozwiązanie LINQ to SQL
W menu Plik programu Visual Studio wskaż polecenie Nowy, a następnie kliknij pozycję Projekt.
W okienku Typy projektów w oknie dialogowym Nowy projekt kliknij pozycję Visual C#.
W okienku Szablony kliknij pozycję Aplikacja konsolowa.
W polu Nazwa wpisz LinqDataManipulationApp.
W polu Lokalizacja sprawdź, gdzie chcesz przechowywać pliki projektu.
Kliknij przycisk OK.
Dodawanie odwołań i dyrektyw LINQ
W tym przewodniku używane są zestawy, które mogą nie być instalowane domyślnie w projekcie. Jeśli element System.Data.Linq nie jest wymieniony jako odwołanie w projekcie, dodaj go zgodnie z opisem w następujących krokach:
Aby dodać System.Data.Linq
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję Odwołania, a następnie kliknij polecenie Dodaj odwołanie.
W oknie dialogowym Dodawanie odwołania kliknij pozycję .NET, kliknij zestaw System.Data.Linq, a następnie kliknij przycisk OK.
Zestaw jest dodawany do projektu.
Dodaj następujące dyrektywy w górnej części Program.cs:
using System.Data.Linq; using System.Data.Linq.Mapping;
Dodawanie pliku kodu Northwind do projektu
W tych krokach założono, że użyto narzędzia SQLMetal do wygenerowania pliku kodu z przykładowej bazy danych Northwind. Aby uzyskać więcej informacji, zobacz sekcję Wymagania wstępne we wcześniejszej części tego przewodnika.
Aby dodać plik kodu Northwind do projektu
W menu Project kliknij pozycję Dodaj istniejący element.
W oknie dialogowym Dodawanie istniejącego elementu przejdź do folderu c:\linqtest6\northwind.cs, a następnie kliknij przycisk Dodaj.
Plik northwind.cs jest dodawany do projektu.
Konfigurowanie połączenia z bazą danych
Najpierw przetestuj połączenie z bazą danych. Należy pamiętać, że baza danych Northwnd nie ma znaku i. Jeśli w następnych krokach wygenerujesz błędy, zapoznaj się z plikiem northwind.cs, aby ustalić, jak jest pisownia częściowej klasy Northwind.
Aby skonfigurować i przetestować połączenie z bazą danych
Wpisz lub wklej następujący kod do
Main
metody w klasie Program:// Use the following connection string. Northwnd db = new Northwnd(@"c:\linqtest6\northwnd.mdf"); // Keep the console window open after activity stops. Console.ReadLine();
Naciśnij F5, aby przetestować aplikację w tym momencie.
Zostanie otwarte okno Konsola .
Aplikację można zamknąć, naciskając Enter w oknie Konsola lub klikając polecenie Zatrzymaj debugowanie w menu Debugowanie programu Visual Studio.
Tworzenie nowej jednostki
Tworzenie nowej jednostki jest proste. Obiekty (takie jak Customer
) można tworzyć przy użyciu słowa kluczowego new
.
W tych i poniższych sekcjach wprowadzasz zmiany tylko w lokalnej pamięci podręcznej. Żadne zmiany nie są wysyłane do bazy danych do momentu wywołania SubmitChanges pod koniec tego przewodnika.
Aby dodać nowy obiekt jednostki Klient
Utwórz nowy
Customer
, dodając następujący kod przedConsole.ReadLine();
w metodzieMain
:// Create the new Customer object. Customer newCust = new Customer(); newCust.CompanyName = "AdventureWorks Cafe"; newCust.CustomerID = "ADVCA"; // Add the customer to the Customers table. db.Customers.InsertOnSubmit(newCust); Console.WriteLine("\nCustomers matching CA before insert"); foreach (var c in db.Customers.Where(cust => cust.CustomerID.Contains("CA"))) { Console.WriteLine("{0}, {1}, {2}", c.CustomerID, c.CompanyName, c.Orders.Count); }
Naciśnij F5, aby debugować rozwiązanie.
Naciśnij Enter w oknie Konsola , aby zatrzymać debugowanie i kontynuować przewodnik.
Aktualizowanie jednostki
W poniższych krokach pobierzesz Customer
obiekt i zmodyfikujesz jedną z jego właściwości.
Aby zmienić nazwę klienta
Dodaj następujący kod powyżej
Console.ReadLine();
:// Query for specific customer. // First() returns one object rather than a collection. var existingCust = (from c in db.Customers where c.CustomerID == "ALFKI" select c) .First(); // Change the contact name of the customer. existingCust.ContactName = "New Contact";
Usuwanie jednostki
Korzystając z tego samego obiektu klienta, można usunąć pierwsze zamówienie.
Poniższy kod pokazuje, jak zerwać relacje między wierszami i jak usunąć wiersz z bazy danych. Dodaj następujący kod przed Console.ReadLine
, aby zobaczyć, jak można usunąć obiekty:
Aby usunąć wiersz
Dodaj następujący kod tuż powyżej
Console.ReadLine();
:// Access the first element in the Orders collection. Order ord0 = existingCust.Orders[0]; // Access the first element in the OrderDetails collection. OrderDetail detail0 = ord0.OrderDetails[0]; // Display the order to be deleted. Console.WriteLine ("The Order Detail to be deleted is: OrderID = {0}, ProductID = {1}", detail0.OrderID, detail0.ProductID); // Mark the Order Detail row for deletion from the database. db.OrderDetails.DeleteOnSubmit(detail0);
Przesyłanie zmian do bazy danych
Ostatnim krokiem wymaganym do tworzenia, aktualizowania i usuwania obiektów jest rzeczywiste przesłanie zmian do bazy danych. Bez tego kroku zmiany są tylko lokalne i nie będą wyświetlane w wynikach zapytania.
Aby przesłać zmiany do bazy danych
Wstaw następujący kod tuż powyżej
Console.ReadLine
:db.SubmitChanges();
Wstaw następujący kod (po
SubmitChanges
), aby pokazać efekty przed i po przesłaniu zmian:Console.WriteLine("\nCustomers matching CA after update"); foreach (var c in db.Customers.Where(cust => cust.CustomerID.Contains("CA"))) { Console.WriteLine("{0}, {1}, {2}", c.CustomerID, c.CompanyName, c.Orders.Count); }
Naciśnij F5, aby debugować rozwiązanie.
Naciśnij Enter w oknie Konsola , aby zamknąć aplikację.
Uwaga / Notatka
Po dodaniu nowego klienta przez przesłanie zmian, nie można ponownie wykonać tego rozwiązania w takiej formie. Aby ponownie wykonać rozwiązanie, zmień nazwę klienta i identyfikatora klienta, który ma zostać dodany.