Практическое руководство. Выполнение запросов к базе данных с помощью LINQ (Visual Basic)
Запросы, интегрированные в язык программирования (Language-Integrated Query, LINQ), упрощают доступ к содержимому базы данных и обеспечивают выполнение запросов.
В следующем примере демонстрируется создание нового приложения, выполняющего запросы к базе данных SQL Server.
В примерах этого раздела используется учебная база данных "Борей".При отсутствии учебной базы данных "Борей" на компьютере разработчика ее можно загрузить с веб-узла Центра загрузки Майкрософт.Подробные инструкции см. в разделе 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 и Order.Обратите внимание, что конструктор автоматически обнаруживает связи между таблицами и создает дочерние свойства для связанных объектов.Например, функция IntelliSense покажет, что в объекте Customer имеется свойство Orders для всех заказов, связанных с клиентом.
Сохраните изменения и закройте конструктор.
Сохраните проект.
Добавление кода в запрос к базе данных и отображение результатов
С панели элементов перетащите элемент управления DataGridView в заданную по умолчанию форму Windows Forms для проекта (Form1).
Дважды щелкните Form1, чтобы добавить код в событие формы Load.
При добавлении таблиц объектно-реляционный конструктор добавляет в проект объект DataContext.Этот объект содержит код, необходимый для обращения к этим таблицам, в дополнение к отдельным объектам и коллекциям для каждой таблицы.Объекту DataContext для проекта присвоено имя на основе имени файла .dbml.Для данного проекта объект DataContext называется northwindDataContext.
Можно создать экземпляр DataContext в коде и запросить таблицы, указанные реляционным конструктором объектов.
Добавьте следующий код к событию Load для запроса к таблицам, которые отображаются как свойства контекста данных.
Dim db As New northwindDataContext Dim londonCusts = From cust In db.Customers Where cust.City = "London" Select cust DataGridView1.DataSource = londonCusts
Нажмите клавишу F5, чтобы запустить проект и просмотреть результаты.
Ниже приведены некоторые дополнительные запросы, которые можно попытаться выполнить.
Dim londonCustOrders = From cust In db.Customers, ord In cust.Orders Where cust.City = "London" Order By ord.OrderID Select cust.City, ord.OrderID, ord.OrderDate DataGridView1.DataSource = londonCustOrders ... Dim custs = From cust In db.Customers Where cust.Country = "France" And (cust.CompanyName.StartsWith("F") Or cust.CompanyName.StartsWith("V")) Order By cust.CompanyName Select cust.CompanyName, cust.City DataGridView1.DataSource = custs
См. также
Задачи
Walkthrough: Creating LINQ to SQL Classes (O/R Designer)
Основные понятия
DataContext Methods (O/R Designer)