Практическое руководство. Возвращение результата запроса LINQ в виде определенного типа (Visual Basic)
Интегрированный с языком запрос (LINQ) упрощает доступ к сведениям о базе данных и выполнении запросов. По умолчанию запросы LINQ возвращают список объектов в виде анонимного типа. Можно также указать, что запрос возвращает список определенного типа с помощью Select
предложения.
В следующем примере показано, как создать новое приложение, которое выполняет запросы к базе данных SQL Server и проектирует результаты в виде определенного именованного типа. Дополнительные сведения см. в разделе "Анонимные типы " и "Выбор предложения".
В примерах в этом разделе используется пример базы данных Northwind. Если база данных не установлена на компьютере разработчика, загрузите ее с веб-узла Центра загрузки Майкрософт. Инструкции см. в разделе "Скачивание примеров баз данных".
Примечание.
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.
Создание подключения к базе данных
В Visual Studio откройте Обозреватель Server Обозреватель Database, щелкнув сервер Обозреватель// Database Обозреватель в меню "Вид".
Щелкните правой кнопкой мыши Подключение данных в Обозреватель Server Обозреватель/ Database, а затем нажмите кнопку "Добавить Подключение".
Укажите допустимое подключение к образцу базы данных Northwind.
Добавление проекта, содержащего файл LINQ to SQL
В меню Файл окна Visual Studio наведите указатель мыши на пункт Создать и щелкните Проект. Выберите приложение Visual Basic Windows Forms в качестве типа проекта.
В меню Проект выберите Добавить новый элемент. Выберите шаблон элемента классов LINQ to SQL.
Назовите файл
northwind.dbml
. Нажмите кнопку Добавить. Откроется реляционный конструктор объектов (конструктор O/R) для файла northwind.dbml.
Добавление таблиц для запроса в конструктор операций ввода-вывода или R
В Обозреватель Server Обозреватель/ Database разверните подключение к базе данных Northwind. Разверните папку Таблицы.
Если вы закрыли конструктор O/R, его можно повторно открыть, дважды щелкнув файл northwind.dbml, который вы добавили ранее.
Щелкните таблицу "Клиенты" и перетащите ее в левую область конструктора.
Конструктор создает новый
Customer
объект для проекта. Вы можете проецить результат запроса в видеCustomer
типа или в виде создаваемого типа. В этом примере будет создан новый тип в более поздней процедуре и проецируются результаты запроса в качестве этого типа.Сохраните изменения и закройте конструктор.
Сохраните проект.
Добавление кода для запроса к базе данных и отображение результатов
На панели элементов перетащите DataGridView элемент управления в форму Windows Form по умолчанию для проекта Form1.
Дважды щелкните Form1, чтобы изменить класс Form1.
End Class
После инструкции класса Form1 добавьте следующий код, чтобы создатьCustomerInfo
тип для хранения результатов запроса для этого примера.Public Class CustomerInfo Public Property CompanyName As String Public Property ContactName As String End Class
При добавлении таблиц в конструктор O/R конструктор конструктора в проект добавлен DataContext объект. Этот объект содержит код, который необходимо получить для доступа к этим таблицам, а также для доступа к отдельным объектам и коллекциям для каждой таблицы. Объект DataContext проекта называется на основе имени DBML-файла. Для этого проекта DataContext объект называется
northwindDataContext
.Вы можете создать экземпляр DataContext кода и запросить таблицы, указанные конструктором O/R.
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, чтобы запустить проект и просмотреть результаты.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по