Пошаговое руководство. Создание модели и запроса Adventure Works Sales (Visual Basic)

Данное пошаговое руководство представляет базовый комплексный сценарий LINQ to Entities минимальной сложности. Будет создана модель AdventureWorks Sales, содержащая сущности и взаимосвязи на основе таблиц Address, Contact, Product, SalesOrderHeader и SalesOrderDetail в образце базы данных AdventureWorks. Затем будет создан простой запрос для получения списка всех продуктов красного цвета в каталоге продуктов AdventureWorks.

Предварительные требования

Для данного пошагового руководства необходим образец базы данных AdventureWorks. Если на компьютере разработчика нет этой базы данных, можно загрузить ее со страницы Сообщества Microsoft SQL Server и образцы на узле CodePlex.

Общие сведения

Данное пошаговое руководство состоит из четырех основных задач.

  • Создание решения LINQ to Entities в среде Visual Studio 2008.

  • Создание модели AdventureWorks Sales.

  • Создание простого запроса, выполняемого для модели Sales.

  • Выполнение запроса и просмотр результатов.

Создание решения LINQ to Entities

В первой задаче будет создано решение Visual Studio, содержащее ссылки, необходимые для построения и запуска проекта LINQ to Entities.

Создание решения Visual Basic LINQ to Entities

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

  2. В области Типы проектов диалогового окна Создание проекта выберите Visual Basic.

  3. Выберите из раскрывающегося меню пункт .NET Framework 3.5.

  4. В области Шаблоны выберите Приложение командной строки.

  5. В поле Имя введите LinqToEntitiesConsoleApp.

  6. В окне Расположение выберите расположение файлов проекта, а затем нажмите кнопку ОК.

  7. В меню Проект выберите команду Добавить ссылку, перейдите на вкладку .NET, щелкните сборку System.Data.Entity и нажмите кнопку ОК.

  8. Добавьте директиву using, указав пространство имен System.Data.Objects к своему файлу исходного кода.

Создание модели AdventureWorks Sales

В этой задаче будет создана модель AdventureWorks Sales при помощи мастера Entity Data Model и ссылка на модель в проекте.

Создание модели AdventureWorks Sales и ссылки на нее

  1. В меню Проект выберите пункт Добавить новый элемент.

  2. В области Шаблоны диалогового окна Добавление нового элемента выберите Модель EDM ADO.NET. Назовите модель AdventureWorksSalesModel и нажмите кнопку Добавить.

  3. В диалоговом окне Выбор содержимого модели выберите Создать из базы данных и нажмите кнопку Далее.

  4. В окне Выбор подключения к данным выберите из списка существующее соединение AdventureWorks или создайте новое соединение с образцом базы данных AdventureWorks на экземпляре SQL Server.

  5. Сохраните параметры соединения в файле App.Config как AdventureWorksEntities и нажмите кнопку Далее.

  6. В диалоговом окне Выбор объектов базы данных очистите все объекты, разверните узел Таблицы и выберите следующие табличные объекты.

    • Address (Person)

    • Contact (Person)

    • Product (Production)

    • SalesOrderDetail (Sales)

    • SalesOrderHeader (Sales)

  7. Назовите пространство имен модели AdventureWorksModel и нажмите кнопку Готово.

  8. Открывается представление Выбор модели, отображающее сущности, содержащиеся в модели AdventureWorks Sales. Нажмите кнопку сохранения и выберите вкладку Module1.vb, чтобы вернуться к исходному коду.

  9. Добавьте в исходный файл инструкцию Imports, указав пространство имен AdventureWorksSalesModel.

Создание простого запроса

На этом шаге будет создан запрос для поиска в каталоге продукции AdventureWorks продуктов красного цвета. В переменной запроса хранятся только команды запроса, если он предназначен для возврата последовательности значений. Фактическое выполнение запроса откладывается до тех пор, пока переменная запроса не будет обработана в цикле For Each. Такой подход называется отложенным выполнением. Дополнительные сведения см. в разделе Выполнение запроса.

Создание простого запроса

  • Введите или вставьте следующий код в метод Main.
Using AWEntities As New AdventureWorksEntities()
    Dim products = AWEntities.Product

    Dim query = From product In products _
            Where product.Color = "Red" _
            Select product

    For Each product As Product In query
        Console.WriteLine("Name: {0}", product.Name)
        Console.WriteLine("Product number: {0}", product.ProductNumber)
        Console.WriteLine("List price: ${0}", product.ListPrice)
        Console.WriteLine("")
    Next
End Using

' Prevent the console window from closing.
Console.WriteLine("Hit Enter...")
Console.Read()

Выполнение запроса

На этом шаге производится фактическое выполнение запроса. Выражение запроса, созданное на предыдущем шаге, не вычисляется до тех пор, пока не потребуются результаты. В начале цикла For Each выполняется запрос к модели AdventureWorks Sales, после чего результаты материализуются.

Выполнение запроса

  1. Нажмите клавишу F5, чтобы запустить приложение в режиме отладки.

  2. Результаты запроса должны появиться в окне консоли.

  3. Нажмите в окне консоли клавишу ВВОД, чтобы закрыть приложение.

См. также

Задачи

Как использовать мастер моделей EDM (платформа Entity Framework)

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

Общие сведения о технологии LINQ to Entities