Практическое руководство. Возвращение результата запроса LINQ в виде определенного типа (Visual Basic)
Запросы, интегрированные в язык программирования (Language-Integrated Query, LINQ), упрощают доступ к содержимому базы данных и обеспечивают выполнение запросов.По умолчанию LINQ-запросы возвращают список объектов как анонимный тип.Можно также указать, чтобы запрос возвращал список определенного типа с помощью предложения Select.
Пример способа создания нового приложения, которое выполняет запросы в базе данных SQL Server и формирует результаты, как конкретный именованный тип.Дополнительные сведения см. в разделах Анонимные типы (Visual Basic) и Предложение Select (Visual Basic).
В примерах этого раздела используется учебная база данных "Борей".При отсутствии учебной базы данных "Борей" на компьютере разработчика ее можно загрузить с веб-узла Центра загрузки Майкрософт.Подробные инструкции см. в разделе Downloading Sample Databases (LINQ to SQL).
Примечание |
---|
На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Создание подключения к базе данных
В Visual Studio откройте обозреватель серверов или обозреватель баз данных. Для этого в меню Вид выберите пункт Обозреватель серверов или Обозреватель баз данных.
В обозревателе серверов или обозревателе баз данных щелкните правой кнопкой мыши Подключения данных, а затем выберите команду Добавить подключение.
Укажите допустимое подключение к учебной базе данных "Northwind".
Добавление проекта, содержащего файл LINQ-SQL
В меню Файл окна Visual Studio выберите команду Создать и щелкните Проект.Выберите Приложение Windows Forms в качестве типа проекта Visual Basic.
В меню Проект выберите команду Добавить новый элемент.Выберите шаблон элемента Классы LINQ-SQL.
Назовите файл northwind.dbml.Нажмите кнопку Добавить.Откроется реляционный конструктор объектов для файла northwind.dbml.
Добавление таблицы к запросу в объектно-реляционном конструкторе
В представлении Обозреватель серверов или Обозреватель баз данных разверните подключение к базе данных "Northwind".Разверните папку Таблицы.
Если реляционный конструктор объектов закрыт, откройте его снова, дважды щелкнув файл northwind.dbml, который был добавлен ранее.
Щелкните таблицу "Клиенты" и перетащите ее в левую область конструктора.
Конструктор создает новый объект Customer для проекта.Можно указать результат запроса как тип Customer или тип, созданный пользователем.В этом примере будет создан новый тип в процедуре более поздней версии и сформирован результат запроса как тип.
Сохраните изменения и закройте конструктор.
Сохраните проект.
Добавление кода в запрос к базе данных и отображение результатов
С панели элементов перетащите элемент управления DataGridView в заданную по умолчанию форму Windows Forms для проекта (Form1).
Дважды щелкните на форме Form1, чтобы изменить класс Form1.
После оператора End Class класса Form1 добавьте следующий код для создания типа CustomerInfo, чтобы сохранить результаты запроса для этого примера.
Public Class CustomerInfo Public Property CompanyName As String Public Property ContactName As String End Class
При добавлении таблиц в реляционный конструктор объектов конструктор добавил объект 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
Нажмите клавишу F5, чтобы запустить проект и просмотреть результаты.
См. также
Задачи
Walkthrough: Creating LINQ to SQL Classes (O/R Designer)
Основные понятия
DataContext Methods (O/R Designer)