Закрыть ... [X]

Пошаговое выполнение кода

пошаговое выполнение кода В данном пошаговом руководстве демонстрируется использование ассоциаций LINQ to SQL для представления связей внешних ключей в базе данных.

Примечание

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.

Это пошаговое руководство было написано с помощью параметров разработки Visual Basic.

Обязательные компоненты

Необходимо выполнить Пошаговое руководство. Простая модель объектов и простой запрос (Visual Basic) (LINQ to SQL).. На этом пошаговом руководстве основано руководство, описываемое в данном разделе. В частности на компьютере должен иметься файл northwnd.mdf в папке c:\linqtest.

Обзор

Данное пошаговое руководство состоит из трех основных задач.

  • пошаговое

    Добавление класса сущности, который представляет таблицу "Orders" в базе данных "Northwind".

  • Добавление примечаний к классу Customer, чтобы расширить связи между классами Customer и Order.

  • Создание и выполнение запроса для тестирования процесса получения сведений класса Order с помощью класса Customer.

Сопоставление связей между таблицами

После определения класса Customer создайте определение класса сущностей Order, включающее следующий код, который указывает, что свойство Orders.Customer связано как внешний ключ со свойством Customers.CustomerID.

Добавление класса сущностей "Order"

  • Введите или вставьте следующий код после определения класса Customer.

    <Table(Name:="Orders")> _ Public Class Order Private _OrderID As Integer Private _CustomerID As String Private _Customers As EntityRef(Of Customer) Public Sub New() Me._Customers = New EntityRef(Of Customer)() End Sub <Column(Storage:="_OrderID", DbType:="Int NOT NULL IDENTITY", _ IsPrimaryKey:=True, IsDBGenerated:=True)> _ Public ReadOnly Property OrderID() As Integer Get Return Me._OrderID End Get End Property ' No need to specify a setter because IsDBGenerated is true. <Column(Storage:="_CustomerID", DbType:="NChar(5)")> _ Public Property CustomerID() As String Get Return Me._CustomerID End Get Set(ByVal value As String) Me._CustomerID = value End Set End Property <Association(Storage:="_Customers", ThisKey:="CustomerID")> _ Public Property Customers() As Customer Get Return Me._Customers.Entity End Get Set(ByVal value As Customer) Me._Customers.Entity = value End Set End Property End Class

Добавление примечаний к классу "Customer"

На этом этапе добавляются примечания к классу Customer, чтобы указать его связь с классом Order. (Это добавление не является обязательным, поскольку для создания связи достаточно создать определение связи в любом направлении. Однако добавление этого примечания позволит с легкостью переходить по объектам в любом направлении.)

Добавление примечаний к классу "Customer"

  • Введите или вставьте следующий код в класс Customer.

    Private _Orders As EntitySet(Of Order) Public Sub New() Me._Orders = New EntitySet(Of Order)() End Sub <Association(Storage:="_Orders", OtherKey:="CustomerID")> _ Public Property Orders() As EntitySet(Of Order) Get Return Me._Orders End Get Set(ByVal value As EntitySet(Of Order)) Me._Orders.Assign(value) End Set End Property

Создание и выполнение запроса в рамках связи "Customer-Order"

Теперь можно получить доступ к объектам Order непосредственно из объектов Customer или в обратном направлении. Объединять явным образом клиентов и заказы не требуется.

Получение доступа к объектам "Order" с помощью объектов "Customer"

  1. Измените метод Sub Main посредством ввода или вставки в метод следующего кода:

    ' Query for customers who have no orders. Dim custQuery = _ From cust In Customers _ Where Not cust.Orders.Any() _ Select cust Dim msg As String = "", title As String = _ "Customers With No Orders", response As MsgBoxResult, _ style As MsgBoxStyle = MsgBoxStyle.Information For Each custObj In custQuery msg &= String.Format(custObj.CustomerID & vbCrLf) Next response = MsgBox(msg, style, title)
  2. Нажмите клавишу F5, чтобы начать отладку приложения.

    В окне сообщения отобразятся два имени, и в окне "Консоль" появится созданный код SQL.

  3. Закройте окно сообщения, чтобы остановить отладку.

Создание строго типизированного представления базы данных

Общая процедура становится гораздо проще, если в начале использовать строго типизированное представление базы данных. Задавая строгую типизацию объекта DataContext, можно избежать вызовов метода GetTable. Строго типизированные таблицы можно использовать в запросах только при использовании строго типизированного объекта DataContext.

В представленных ниже шагах создается объект Customers в качестве строго типизированной таблицы, которая сопоставляется с таблицей "Customers" в базе данных.

Установка строгой типизации объекта "DataContext"

  1. Добавьте следующий код непосредственно перед объявлением класса Customer.

    Public Class Northwind Inherits DataContext ' Table(Of T) abstracts database details per ' table/data type. Public Customers As Table(Of Customer) Public Orders As Table(Of Order) Public Sub New(ByVal connection As String) MyBase.New(connection) End Sub End Class
  2. Измените метод Sub Main, чтобы использовать строго типизированный объект DataContext, как показано ниже:

    ' Use a connection string. Dim db As New Northwind _ ("C:\linqtest\northwnd.mdf") ' Query for customers from Seattle. Dim custs = _ From cust In db.Customers _ Where cust.City = "Seattle" _ Select cust For Each custObj In custs Console.WriteLine("ID=" & custObj.CustomerID) Next ' Freeze the console window. Console.ReadLine()
  3. Нажмите клавишу F5, чтобы начать отладку приложения.

    В окне «Консоль"» отобразится следующее.

    ID=WHITC

  4. Чтобы закрыть приложение, в окне "Консоль" нажмите клавишу ВВОД.

  5. Если требуется сохранить приложение, в меню Файл выберите команду Сохранить все.

Следующие действия

В следующем пошаговом руководстве (Пошаговое руководство. Обработка данных (Visual Basic)) демонстрируется управление данными. Для этого пошагового руководства не требуется сохранять два пошаговых руководства, которые уже выполнены в этой серии.

См. также

Обучение с помощью пошаговых руководств


Источник: https://docs.microsoft.com/ru-ru/dotnet/framework/data/adonet/sql/linq/walkthrough-querying-across-relationships-visual-basic

Поделись с друзьями



Рекомендуем посмотреть ещё:



Пошаговое руководство. Выполнение запросов со связями Цветы в горшке из бисера схемы плетения



Пошаговое выполнение кода Общие сведения о пошаговом выполнении кода
Пошаговое выполнение кода Пошаговое выполнение кода в MSScript control / Visual
Пошаговое выполнение кода Отладка платформы 1С Проект 'Курсы 1С&apos
Пошаговое выполнение кода Навигация по коду с помощью отладчика
Пошаговое выполнение кода Flash CS3 Пошаговое выполнение кода
1000 выкроек игрушек - делаем своими руками Вышивка бисером для начинающих: пошаговый мастер-класс. журнал "Рутвет" Вязание крючком платья: мастер-классы с пошаговой инструкцией Вязанная шапочка описание и схемы Интересная РАБОТА для ХУДОЖНИКОВ! Роспись по дереву, стеклу и т.д. Мир

ШОКИРУЮЩИЕ НОВОСТИ