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.
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 w sytuacjach, gdy utrzymujesz starszą aplikację, która już go używa, lub w prostych aplikacjach używających SQL Server i nie wymagających 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 Object Relational Designer (O/R Designer). Projektant O/R to interfejs użytkownika umożliwiający edytowanie plików .dbml
. Edytowanie plików .dbml
za pomocą interfejsu projektanta wymaga narzędzi LINQ do SQL, które nie są domyślnie instalowane w żadnym pakiecie instalacyjnym 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 LINQ to SQL tools w kategorii Code Tools.
Co to jest projektant O/R
Projektant O/R ma dwa odrębne obszary na swoim interfejsie projektowania: okienko elementów po lewej stronie i okienko metod po prawej stronie. Okienko jednostek jest główną powierzchnią projektową, która wyświetla klasy jednostek, skojarzenia i hierarchie dziedziczenia. Okienko metod to powierzchnia projektowa, która wyświetla DataContext metod odwzorowanych na procedury składowane i funkcje.
projektanta O/R designer udostępnia wizualną powierzchnię projektową do tworzenia LINQ to SQL klas jednostek i skojarzeń (relacji), które są oparte na obiektach w bazie danych. Innymi słowy, projektant O/R tworzy model obiektów w aplikacji, która mapuje obiekty w bazie danych. Generuje również silnie typizowane DataContext, które wysyła i odbiera dane między klasami jednostek a bazą danych. Projektant O/R zapewnia również funkcjonalność mapowania procedur składowanych i funkcji do metod DataContext w celu zwracania danych i wypełniania klas encji. Na koniec projektant O/R zapewnia możliwość projektowania relacji dziedziczenia między klasami jednostek.
Otwórz projektanta O/R
Aby dodać model jednostki LINQ to SQL do projektu, wybierz pozycję Project>Dodaj nowy element, a następnie wybierz pozycję LINQ to SQL Classes z listy elementów projektu:
Program Visual Studio tworzy plik .dbml
i dodaje go do rozwiązania. Jest to plik mapowania XML i powiązane z nią pliki kodu.
Po wybraniu pliku .dbml
, program Visual Studio wyświetli powierzchnię projektanta O/R , która umożliwia wizualne tworzenie modelu. Poniższa ilustracja przedstawia projektanta po tym, jak tabele Customers
Northwind i Orders
zostały przeciągnięte z Eksploratora serwera . Zwróć uwagę na relację między tabelami.
Ważny
O/R Designer jest prostym maperem obiektowo-relacyjnym, ponieważ obsługuje tylko 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ę połączoną, nie jest obsługiwane; użyj platformy Entity Framework do tworzenia złożonych mapowań. Ponadto, projektant działa jako jednokierunkowy generator kodu. Oznacza to, że w pliku kodu zostaną odzwierciedlone tylko zmiany wprowadzone w interfejsie projektanta. Ręczne zmiany w pliku kodu nie są odzwierciedlane w projektancie O/R . Wszelkie zmiany wprowadzone ręcznie w pliku kodu zostaną nadpisane w momencie zapisywania projektanta i regeneracji kodu. Aby uzyskać informacje na temat dodawania kodu użytkownika i rozszerzania klas wygenerowanych przez projektanta O/R , zobacz Jak rozszerzać kod generowany przez projektanta O/R.
Tworzenie i konfigurowanie obiektu DataContext
Po dodaniu LINQ to SQL Classes elementu do projektu i otwarciu O/R Designerpusta powierzchnia projektowa reprezentuje puste DataContext gotowe do skonfigurowania. DataContext jest konfigurowany za pomocą informacji o połączeniu zapewnionych przez pierwszy element przeciągnięty na powierzchnię projektową. W związku z tym DataContext jest konfigurowana przy użyciu informacji o połączeniu z pierwszego elementu umieszczonego na powierzchni projektowej. Aby uzyskać więcej informacji na temat klasy DataContext, zobacz metody DataContext (O/R Designer).
Tworzenie klas jednostek mapowanych na tabele i widoki bazy danych
Można utworzyć klasy jednostek odpowiadające tabelom i widokom, przeciągając tabele i widoki bazy danych z Eksploratora serwera lub Eksploratora baz danych do Projektanta O/R. Jak wskazano w poprzedniej sekcji, DataContext jest konfigurowana z informacjami o połączeniu dostarczonymi przez pierwszy element przeciągnięty na powierzchnię projektową. Jeśli do narzędzia O/R Designer zostanie dodany kolejny element wykorzystujący inne połączenie, możesz zmienić połączenie dla DataContext. Aby uzyskać więcej informacji, zobacz Instrukcje: tworzenie klas LINQ to SQL mapowanych na tabele i widoki (O/R Designer).
Tworzenie metod DataContext wywołujących procedury składowane i funkcje
Można utworzyć metody DataContext, które wywołają (są mapowane na) procedury składowane i funkcje, przeciągając je z Eksploratora serwera lub Eksploratora baz danych na O/R Designer. Procedury składowane i funkcje są dodawane do projektanta O/R jako metody DataContext.
Notatka
Podczas przeciągania procedur składowanych i funkcji z eksploratora serwera lub eksploratora bazy danych na projektantaO/R Designer zwracany typ metody wygenerowanej DataContext różni się w zależności od miejsca upuszczania elementu. Aby uzyskać więcej informacji, zobacz metody DataContext (O/R Designer).
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 utworzyć metody DataContext, które wywołują 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 Jak przypisać procedury składowane do wykonywania aktualizacji, wstawień i usunięć (Projektant O/R).
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 w jednej tabeli, jak to często bywa implementowane w systemach relacyjnych. Aby uzyskać więcej informacji, zobacz Jak skonfigurować dziedziczenie przy użyciu projektanta O/R.
Zapytania LINQ do SQL
Klasy jednostek utworzone przez projektanta O/R są przeznaczone do użytku z Language Integrated Query (LINQ). Aby uzyskać więcej informacji, zobacz How to: Query for information.
Rozdziel wygenerowany kod klasy DataContext i jednostki na różne przestrzenie nazw
Projektant O/R udostępnia właściwości przestrzeni nazw kontekstu oraz przestrzeni nazw jednostki w DataContext. Te właściwości określają przestrzeń nazw, w której jest generowany kod DataContext i kod klasy encji. Domyślnie te właściwości są puste, a DataContext i klasy jednostek są generowane w przestrzeni nazw aplikacji. Aby wygenerować kod w przestrzeni nazw innej niż przestrzeń nazw aplikacji, wprowadź wartość w przestrzeni nazw kontekstu i/lub przestrzeni nazw jednostki.