LINQ to SQL tools in Visual Studio
LINQ to SQL była pierwszą technologią mapowania obiekt-relacyjnego wydaną przez firmę Microsoft. Działa dobrze w podstawowych scenariuszach i nadal jest obsługiwany w programie Visual Studio, ale nie jest już aktywnie opracowywany. Użyj linQ to SQL podczas obsługi starszej aplikacji, która jest już z niej używana, lub w prostych aplikacjach korzystających z programu SQL Server i nie wymagają mapowania wielu tabel. Ogólnie rzecz biorąc, nowe aplikacje powinny używać platformy Entity Framework, gdy wymagana jest warstwa mapowania relacyjnego obiektu.
Instalowanie narzędzi LINQ to SQL
W programie Visual Studio utworzysz klasy LINQ to SQL reprezentujące tabele SQL przy użyciu Projektant relacyjnych obiektów (Projektant O/R). Projektant O/R jest interfejsem użytkownika do edytowania plików dbml. Edytowanie plików dbml na powierzchni projektanta wymaga narzędzi LINQ to SQL, które nie są instalowane domyślnie w ramach żadnych obciążeń programu Visual Studio.
Aby zainstalować narzędzia LINQ to SQL, uruchom instalatora programu Visual Studio, wybierz pozycję Modyfikuj, a następnie wybierz kartę Poszczególne składniki , a następnie wybierz pozycję LINQ to SQL tools w kategorii Narzędzia kodu.
Co to jest Projektant O/R
Projektant O/R ma dwa odrębne obszary na powierzchni projektowej: okienko jednostek po lewej stronie i okienko metody po prawej stronie. Okienko jednostek jest główną powierzchnią projektową, która wyświetla klasy jednostek, skojarzenia i hierarchie dziedziczenia. Okienko metody to powierzchnia projektowa, która wyświetla DataContext metody mapowane na procedury składowane i funkcje.
Projektant O/R udostępnia wizualną powierzchnię projektową do tworzenia klas jednostek LINQ to SQL i skojarzeń (relacji), które są oparte na obiektach w bazie danych. Innymi słowy, Projektant O/R tworzy model obiektów w aplikacji mapowania na obiekty w bazie danych. Generuje również silnie typizowane DataContext dane, które wysyła i odbiera dane między klasami jednostek a bazą danych. Projektant O/R udostępnia również funkcje mapowania procedur składowanych i funkcji na DataContext metody zwracania danych i wypełniania klas jednostek. Na koniec Projektant O/R zapewnia możliwość projektowania relacji dziedziczenia między klasami jednostek.
Otwieranie projektanta O/R
Aby dodać model jednostki LINQ to SQL do projektu, wybierz pozycję Project Add New Item (Dodaj nowy element),>a następnie wybierz pozycję LINQ to SQL Classes (Klasy LINQ to SQL) z listy elementów projektu:
Program Visual Studio tworzy .dbml
plik i dodaje go do rozwiązania. Jest to plik mapowania XML i powiązane z nią pliki kodu.
Po wybraniu .dbml
pliku program Visual Studio wyświetli powierzchnię Projektant O/R, która umożliwia wizualne tworzenie modelu. Poniższa ilustracja przedstawia projektanta po przeciągnięciu tabel Northwind Customers
Orders
z Eksploratora serwera. Zwróć uwagę na relację między tabelami.
Ważne
Projektant O/R jest prostym maperem relacyjnym obiektu, ponieważ obsługuje tylko relacje mapowania 1:1. Innymi słowy, klasa jednostki może mieć tylko relację mapowania 1:1 z tabelą bazy danych lub widokiem. Złożone mapowanie, takie jak mapowanie klasy jednostki na tabelę sprzężonej, nie jest obsługiwane; użyj platformy Entity Framework do tworzenia złożonych mapowań. Ponadto projektant jest jednokierunkowym generatorem kodu. Oznacza to, że w pliku kodu zostaną odzwierciedlone tylko zmiany wprowadzone na powierzchni projektanta. Zmiany ręczne w pliku kodu nie są odzwierciedlane w Projektant O/R. Wszelkie zmiany wprowadzone ręcznie w pliku kodu zostaną zastąpione podczas zapisywania projektanta i ponownego generowania kodu. Aby uzyskać informacje na temat dodawania kodu użytkownika i rozszerzania klas generowanych przez Projektant O/R, zobacz How to: Extend code generated by the O/R Projektant (Jak rozszerzyć kod generowany przez Projektant O/R).
Tworzenie i konfigurowanie obiektu DataContext
Po dodaniu elementu LINQ to SQL Classes do projektu i otwarciu Projektant O/R pusta powierzchnia projektowa reprezentuje pustą DataContext gotową do skonfigurowania. parametr DataContext jest skonfigurowany przy użyciu informacji o połączeniu dostarczonych przez pierwszy element, który jest przeciągany na powierzchnię projektową. W związku z tym parametr DataContext jest konfigurowany przy użyciu informacji o połączeniu z pierwszego elementu porzuconego na powierzchni projektowej. Aby uzyskać więcej informacji na temat DataContext klasy, zobacz Metody DataContext (O/R Projektant).
Tworzenie klas jednostek mapowanych na tabele i widoki bazy danych
Klasy jednostek można tworzyć zamapowane na tabele i widoki, przeciągając tabele bazy danych i widoki z Eksploratora serwera lub Eksploratora baz danych do Projektant O/R. Jak wskazano w poprzedniej sekcji, element DataContext jest skonfigurowany z informacjami o połączeniu dostarczonymi przez pierwszy element przeciągnięty na powierzchnię projektową. Jeśli kolejny element używający innego połączenia zostanie dodany do Projektant O/R, możesz zmienić połączenie dla elementu DataContext. Aby uzyskać więcej informacji, zobacz How to: Create LINQ to SQL classes ma mapowane na tabele i widoki (O/R Projektant).
Tworzenie metod DataContext wywołujących procedury składowane i funkcje
Metody wywołujące procedury składowane i funkcje (mapowane) można tworzyćDataContext, przeciągając je z Eksploratora serwera lub Eksploratora baz danych do Projektant O/R. Procedury składowane i funkcje są dodawane do Projektant O/R jako metody DataContext.
Uwaga
Przeciągając procedury składowane i funkcje z Eksploratora serwera lub Eksploratora baz danych do Projektant O/R, zwracany typ wygenerowanej DataContext metody różni się w zależności od miejsca upuszczania elementu. Aby uzyskać więcej informacji, zobacz Metody DataContext (O/R Projektant).
Konfigurowanie obiektu DataContext do używania procedur składowanych w celu zapisywania danych między klasami jednostek a bazą danych
Jak wspomniano wcześniej, można tworzyć DataContext metody wywołujące procedury składowane i funkcje. Ponadto można również przypisać procedury składowane, które są używane dla domyślnego zachowania LINQ to SQL w czasie wykonywania, który wykonuje operacje wstawiania, aktualizacji i usuwania. Aby uzyskać więcej informacji, zobacz How to: Assign stored procedures to perform updates, inserts, and deletes (O/R Projektant).
Dziedziczenie i projektant O/R
Podobnie jak inne obiekty, klasy LINQ to SQL mogą używać dziedziczenia i pochodzić z innych klas. W bazie danych relacje dziedziczenia są tworzone na kilka sposobów. Projektant O/R obsługuje koncepcję dziedziczenia pojedynczej tabeli, ponieważ jest często implementowana w systemach relacyjnych. Aby uzyskać więcej informacji, zobacz How to: Configure inheritance by using the O/R Projektant (Jak skonfigurować dziedziczenie przy użyciu Projektant O/R).
Zapytania LINQ to SQL
Klasy jednostek utworzone przez Projektant O/R są przeznaczone do użytku z zapytaniem zintegrowanym z językiem (LINQ). Aby uzyskać więcej informacji, zobacz How to: Query for information (Instrukcje: wykonywanie zapytań o informacje).
Rozdziel wygenerowany kod klasy DataContext i jednostki na różne przestrzenie nazw
Projektant O/R udostępnia właściwości przestrzeni nazw kontekstu i przestrzeni nazw jednostek w obiekcie DataContext. Te właściwości określają przestrzeń nazw, w DataContext której jest generowany kod klasy i jednostki. Domyślnie te właściwości są puste, a DataContext klasy jednostek i są generowane w przestrzeni nazw aplikacji. Aby wygenerować kod w przestrzeni nazw innej niż przestrzeń nazw aplikacji, wprowadź wartość we właściwościach Przestrzeni nazw kontekstu i/lub Przestrzeni nazw jednostek.