Udostępnij za pośrednictwem


Narzędzia LINQ to SQL w programie 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 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:

zrzut ekranu przedstawiający klasy LINQ to SQL.

Program Visual Studio tworzy plik .dbml i dodaje go do rozwiązania. Jest to plik mapowania XML i powiązane z nią pliki kodu.

zrzut ekranu przedstawiający klasy LINQ to SQL w Eksploratorze rozwiązań.

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.

zrzut ekranu przedstawiający LINQ to SQL Designer.

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.

Zawartość referencyjna

Zobacz też