Поделиться через


Практическое руководство. Возвращение результата запроса LINQ в виде определенного типа (Visual Basic)

Запросы, интегрированные в язык программирования (Language-Integrated Query, LINQ), упрощают доступ к содержимому базы данных и обеспечивают выполнение запросов. По умолчанию LINQ-запросы возвращают список объектов как анонимный тип. Можно также указать, чтобы запрос возвращал список определенного типа с помощью предложения Select.

Пример способа создания нового приложения, которое выполняет запросы в базе данных SQL Server и формирует результаты, как конкретный именованный тип. Дополнительные сведения см. в разделах Анонимные типы (Visual Basic) и Предложение Select (Visual Basic).

В примерах этого раздела используется учебная база данных "Борей". При отсутствии учебной базы данных "Борей" на компьютере разработчика ее можно загрузить с веб-узла Центра загрузки Майкрософт. Указания см. в разделе Загрузка образцов баз данных (LINQ to SQL).

Примечание

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

Создание подключения к базе данных

  1. В Visual Studio откройте обозреватель серверов или обозреватель баз данных. Для этого в меню Вид выберите пункт Обозреватель серверов или Обозреватель баз данных.

  2. В обозревателе серверов или обозревателе баз данных щелкните правой кнопкой мыши Подключения данных, а затем выберите команду Добавить подключение.

  3. Укажите допустимое подключение к учебной базе данных "Борей".

Добавление проекта, содержащего файл LINQ-SQL

  1. В меню Файл Visual Studio выберите команду Создать и щелкните Проект. Выберите Приложение Windows Forms в качестве типа проекта Visual Basic.

  2. В меню Проект выберите команду Добавить новый элемент. Выберите шаблон элемента Классы LINQ-SQL.

  3. Назовите файл northwind.dbml. Нажмите кнопку Добавить. Откроется реляционный конструктор объектов для файла northwind.dbml.

Добавление таблицы к запросу в реляционном конструкторе объектов

  1. В обозревателе серверов или обозревателе баз данных разверните подключение к базе данных "Борей". Разверните папку Таблицы.

    Если объектно-реляционный конструктор закрыт, откройте его снова, дважды щелкнув файл northwind.dbml, который был добавлен ранее.

  2. Щелкните таблицу "Клиенты" и перетащите ее в левую область конструктора.

    Конструктор создает новый объект Customer для проекта. Можно указать результат запроса как тип Customer или тип, созданный пользователем. В этом примере будет создан новый тип в процедуре более поздней версии и сформирован результат запроса как тип.

  3. Сохраните изменения и закройте конструктор.

  4. Сохраните проект.

Добавление кода в запрос к базе данных и отображение результатов

  1. Из панели элементов перетащите элемент управления DataGridView в заданную по умолчанию форму Windows Form для проекта (Form1).

  2. Дважды щелкните на форме Form1, чтобы изменить класс Form1.

  3. После оператора End Class класса Form1 добавьте следующий код для создания типа CustomerInfo, чтобы сохранить результаты запроса для этого примера.

    Public Class CustomerInfo
      Public Property CompanyName As String
      Public Property ContactName As String
    End Class
    
  4. При добавлении таблиц в реляционный конструктор объектов конструктор добавил объект DataContext в проект. Этот объект содержит код, необходимый для доступа к этим таблицам и доступа к отдельным объектам и коллекциям для каждой таблицы. Объекту DataContext для проекта присвоено имя на основе имени файла .dbml. В данном проекте объект DataContext называется northwindDataContext.

    Можно создать экземпляр DataContext в коде и запросить таблицы, указанные реляционным конструктором объектов.

    В событии Load класса Form1 добавьте следующий код для запроса к таблицам, которые отображаются как свойства контекста данных. Предложение Select запроса создает новый тип CustomerInfo вместо анонимного типа для каждого элемента результата запроса.

    Dim db As New northwindDataContext
    
    Dim customerList =
      From cust In db.Customers
      Where cust.CompanyName.StartsWith("L")
      Select New CustomerInfo With {.CompanyName = cust.CompanyName,
                                    .ContactName = cust.ContactName}
    
    DataGridView1.DataSource = customerList
    
  5. Нажмите клавишу F5, чтобы запустить проект и просмотреть результаты.

См. также

Задачи

Пошаговое руководство. Создание классов LINQ to SQL (реляционный конструктор объектов)

Основные понятия

Методы DataContext (реляционный конструктор объектов)

Другие ресурсы

LINQ в Visual Basic

Запросы (Visual Basic)

LINQ to SQL