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


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

Обновлен: Ноябрь 2007

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

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

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

Bb918115.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

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

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

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

  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
      Private _CompanyName As String
      Private _ContactName As String
    
      Public Property CompanyName() As String
        Get
          Return _CompanyName
        End Get
        Set(ByVal value As String)
          _CompanyName = value
        End Set
      End Property
    
      Public Property ContactName() As String
        Get
          Return _ContactName
        End Get
        Set(ByVal value As String)
          _ContactName = value
        End Set
      End Property
    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