Udostępnij za pośrednictwem


Przewodnik: Prosty model obiektu i zapytanie (Visual Basic)

Ten przewodnik zawiera podstawowy kompleksowy scenariusz LINQ to SQL z minimalnymi złożonościami. Utworzysz klasę jednostek, która modeluje tabelę Customers w przykładowej bazie danych Northwind. Następnie utworzysz proste zapytanie, aby wyświetlić listę klientów, którzy znajdują się w Londynie.

Ten przewodnik jest zorientowany na kod zgodnie z projektem, aby ułatwić przedstawienie koncepcji LINQ to SQL. Zwykle należy użyć relacyjnej Projektant obiektu do utworzenia modelu obiektów.

Uwaga

Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.

Ten przewodnik został napisany przy użyciu programu Visual Basic Development Ustawienia.

Wymagania wstępne

  • Ten przewodnik używa dedykowanego folderu ("c:\linqtest") do przechowywania plików. Przed rozpoczęciem przewodnika utwórz ten folder.

  • Ten przewodnik wymaga przykładowej bazy 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 do folderu c:\linqtest.

Omówienie

Ten przewodnik składa się z sześciu głównych zadań:

  • Tworzenie rozwiązania LINQ to SQL w programie Visual Studio.

  • Mapowanie klasy na tabelę bazy danych.

  • Wyznaczanie właściwości klasy w celu reprezentowania kolumn bazy danych.

  • Określanie połączenia z bazą danych Northwind.

  • Tworzenie prostego zapytania do uruchomienia względem bazy danych.

  • Wykonywanie zapytania i obserwowanie wyników.

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

  1. W menu Plik kliknij pozycję Nowy projekt.

  2. W okienku Typy projektów w oknie dialogowym Nowy projekt kliknij pozycję Visual Basic.

  3. W okienku Szablony kliknij pozycję Aplikacja konsolowa.

  4. W polu Nazwa wpisz LinqConsoleApp.

  5. 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 System.Data.Linq nie ma na liście jako odwołanie w projekcie (kliknij pozycję Pokaż wszystkie pliki w Eksplorator rozwiązań i rozwiń węzeł Odwołania), dodaj go zgodnie z opisem w poniższych krokach.

Aby dodać element System.Data.Linq

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję Odwołania, a następnie kliknij polecenie Dodaj odwołanie.

  2. 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.

  3. Ponadto w oknie dialogowym Dodawanie odwołania kliknij pozycję .NET, przewiń do i kliknij przycisk System.Windows.Forms, a następnie kliknij przycisk OK.

    Ten zestaw, który obsługuje pole komunikatu w przewodniku, jest dodawany do projektu.

  4. Dodaj następujące dyrektywy powyżej Module1:

    Imports System.Data.Linq
    Imports System.Data.Linq.Mapping
    Imports System.Windows.Forms
    
    

Mapowanie klasy na tabelę bazy danych

W tym kroku utworzysz klasę i zamapujesz ją na tabelę bazy danych. Taka klasa jest określana jako klasa jednostki. Należy pamiętać, że mapowanie jest wykonywane przez dodanie atrybutu TableAttribute . Właściwość Name określa nazwę tabeli w bazie danych.

Aby utworzyć klasę jednostki i zamapować ją na tabelę bazy danych

  • Wpisz lub wklej następujący kod do Module1.vb bezpośrednio powyżej Sub Main:

    <Table(Name:="Customers")> _
    Public Class Customer
    End Class
    

Wyznaczanie właściwości klasy do reprezentowania kolumn bazy danych

W tym kroku wykonasz kilka zadań.

  • Atrybut służy ColumnAttribute do wyznaczania CustomerID właściwości i City w klasie jednostki jako reprezentujących kolumny w tabeli bazy danych.

  • Właściwość należy wyznaczyć CustomerID jako reprezentującą kolumnę klucza podstawowego w bazie danych.

  • _CustomerID Wyznaczasz pola i _City dla magazynu prywatnego. LinQ to SQL może następnie przechowywać i pobierać wartości bezpośrednio, zamiast korzystać z publicznych metod dostępu, które mogą obejmować logikę biznesową.

Aby reprezentować cechy dwóch kolumn bazy danych

  • Wpisz lub wklej następujący kod do Module1.vb tuż przed End Class:

    Private _CustomerID As String
    <Column(IsPrimaryKey:=True, Storage:="_CustomerID")> _
    Public Property CustomerID() As String
        Get
            Return Me._CustomerID
        End Get
        Set(ByVal value As String)
            Me._CustomerID = value
        End Set
    End Property
    
    Private _City As String
    <Column(Storage:="_City")> _
    Public Property City() As String
        Get
            Return Me._City
        End Get
        Set(ByVal value As String)
            Me._City = value
        End Set
    End Property
    

Określanie Połączenie do bazy danych Northwind

W tym kroku użyjesz DataContext obiektu do nawiązania połączenia między strukturami danych opartymi na kodzie a samą bazą danych. Jest DataContext to główny kanał, za pomocą którego pobierasz obiekty z bazy danych i przesyłasz zmiany.

Zadeklarujesz również, Table(Of Customer) aby działać jako logiczna, typowana tabela dla zapytań względem tabeli Customers w bazie danych. Te zapytania zostaną utworzone i wykonane w kolejnych krokach.

Aby określić połączenie z bazą danych

  • Wpisz lub wklej następujący kod do Sub Main metody .

    Należy pamiętać, że northwnd.mdf plik znajduje się w folderze linqtest. Aby uzyskać więcej informacji, zobacz sekcję Wymagania wstępne we wcześniejszej części tego przewodnika.

    ' Use a connection string.
    Dim db As New DataContext _
        ("c:\linqtest\northwnd.mdf")
    
    ' Get a typed table to run queries.
    Dim Customers As Table(Of Customer) = _
        db.GetTable(Of Customer)()
    

Tworzenie prostego zapytania

W tym kroku utworzysz zapytanie, aby znaleźć klientów w tabeli Customers (Klienci) w Londynie. Kod zapytania w tym kroku opisuje tylko zapytanie. Nie jest on wykonywany. Takie podejście jest nazywane odroczonym wykonywaniem. Aby uzyskać więcej informacji, zobacz Wprowadzenie do zapytań LINQ (C#).

Utworzysz również dane wyjściowe dziennika, aby wyświetlić polecenia SQL generowane przez linQ to SQL. Ta funkcja rejestrowania (korzystająca z Logmetody ) jest przydatna podczas debugowania i określania, że polecenia wysyłane do bazy danych dokładnie reprezentują zapytanie.

Aby utworzyć proste zapytanie

  • Wpisz lub wklej następujący kod do Sub Main metody po deklaracji Table(Of Customer) :

    ' Attach the log to show generated SQL in a console window.
    db.Log = Console.Out
    
    ' Query for customers in London.
    Dim custQuery = _
        From cust In Customers _
        Where cust.City = "London" _
        Select cust
    

Wykonywanie zapytania

W tym kroku wykonasz zapytanie. Wyrażenia zapytania utworzone w poprzednich krokach nie są oceniane, dopóki nie będą potrzebne wyniki. Po rozpoczęciu For Each iteracji polecenie SQL jest wykonywane względem bazy danych, a obiekty są zmaterializowane.

Aby wykonać zapytanie

  1. Wpisz lub wklej następujący kod na końcu Sub Main metody (po opisie zapytania):

    ' Format the message box.
    Dim msg As String = "", title As String = "London customers:", _
        response As MsgBoxResult, style As MsgBoxStyle = _
        MsgBoxStyle.Information
    
    ' Execute the query.
    For Each custObj In custQuery
        msg &= String.Format(custObj.CustomerID & vbCrLf)
    Next
    
    ' Display the results.
    response = MsgBox(msg, style, title)
    
  2. Naciśnij klawisz F5, aby debugować aplikację.

    Uwaga

    Jeśli aplikacja generuje błąd czasu wykonywania, zobacz sekcję Rozwiązywanie problemów z Edukacja przez przewodniki.

    W oknie komunikatu zostanie wyświetlona lista sześciu klientów. W oknie Konsola zostanie wyświetlony wygenerowany kod SQL.

  3. Kliknij przycisk OK , aby odrzucić okno komunikatu.

    Aplikacja zostanie zamknięta.

  4. W menu File kliknij pozycję Save All.

    Ta aplikacja będzie potrzebna, jeśli przejdziesz do następnego przewodnika.

Następne kroki

Przewodnik : wykonywanie zapytań między relacjami (Visual Basic) jest kontynuowane w miejscu zakończenia tego przewodnika. Przewodnik Wykonywanie zapytań między relacjami pokazuje, jak linQ to SQL może wykonywać zapytania w różnych tabelach, podobnie jak sprzężenia w relacyjnej bazie danych.

Jeśli chcesz wykonać przewodnik Wykonywanie zapytań między relacjami, pamiętaj, aby zapisać rozwiązanie dla właśnie ukończonego przewodnika, co jest wymaganiem wstępnym.

Zobacz też