Spec-Zone.ru › MySQL Connectors 1.0

6.4 Учебник: Привязка данных в ASP.NET с помощью LINQ к сущностям

В этом учебнике вы создадите веб-страницу ASP.NET, которая привязывает запросы LINQ к сущностям с использованием сопоставления Entity Framework с MySQL Connector/NET.

Если вы еще этого не сделали, установите пример базы данных world перед выполнением этого учебника. См. учебник Раздел 6.3, «Учебник: Использование сущности Entity Framework в качестве источника данных Windows Forms» для получения инструкций по загрузке и установке этой базы данных.

Создание веб-сайта ASP.NET

В этой части учебника вы создаете веб-сайт ASP.NET. Веб-сайт использует базу данных world. Главная веб-страница содержит раскрывающийся список, из которого вы можете выбрать страну. Затем данные о городах этой страны отображаются в элементе управления GridView.

  1. В главном меню Visual Studio выберите Файл, Новый, а затем Веб-сайт.

  2. Из установленных шаблонов Visual Studio выберите Веб-сайт ASP.NET. Нажмите ОК. По умолчанию вы увидите исходный вид вашей веб-страницы.

  3. Переключитесь на вкладку «Вид» под панелью «Исходный код».

  4. В панели «Вид» введите текст для оформления пустой веб-страницы.

  5. Нажмите на Панель инструментов. Из списка элементов управления выберите DropDownList. Перетащите элемент управления в место под текстом на вашей веб-странице.

  6. В контекстном меню элемента управления DropDownList убедитесь, что установлен флажок Включить автоматическое обратное событие. Это гарантирует, что обработчик событий элемента управления вызывается при выборе элемента. Выбор пользователя, в свою очередь, будет использоваться для заполнения элемента управления GridView.

  7. Из панели инструментов выберите элемент управления GridView. Перетащите элемент управления GridView в место под уже размещенным раскрывающимся списком.

    На рисунке ниже показан пример декоративного текста и двух элементов управления на вкладке «Вид». Добавленный элемент управления GridView создал таблицу с тремя столбцами (Column0, Column1 и Column3), и строка abc отображается в каждой ячейке таблицы.

    Рисунок 6.18 Размещенный элемент управления GridView

    Content is described in the surrounding text.

  8. На этом этапе рекомендуется сохранить решение и выполнить сборку, чтобы убедиться в отсутствии ошибок.

  9. Если вы запустите решение, вы увидите, что отображаются текст и раскрывающийся список, но список пуст. Также элемент управления GridView вообще не отображается. Добавление этой функциональности описано в следующих разделах.

На этом этапе у вас есть веб-сайт, который будет собираться, но необходима дополнительная функциональность. Следующим шагом будет использование Entity Framework для создания сопоставления между базой данных world и сущностями, которыми вы можете управлять программно.

Создание модели данных ADO.NET Entity

На данном этапе учебника вы добавите модель данных ADO.NET Entity в свой проект, используя базу данных world на уровне хранения. Процедура описана в учебнике Раздел 6.3, «Учебник: Использование сущности Entity Framework в качестве источника данных Windows Forms» и поэтому здесь не будет повторяться.

Заполнение списка с помощью результатов запроса LINQ к сущностям

В этой части учебника вы напишете код для заполнения элемента управления DropDownList. При загрузке веб-страницы данные для заполнения списка будут получены с помощью результатов запроса LINQ к созданной ранее модели.

  1. В панели «Вид» дважды щелкните любое пустое место. Это откроет метод Page_Load.

  2. Измените соответствующий раздел кода в соответствии со следующим примером.

    ...
    public partial class _Default : System.Web.UI.Page
    {
        worldModel.worldEntities we;
    
        protected void Page_Load(object sender, EventArgs e)
        {
            we = new worldModel.worldEntities();
    
            if (!IsPostBack)
            {
                var countryQuery = from c in we.country
                                   orderby c.Name
                                   select new { c.Code, c.Name };
                DropDownList1.DataValueField = "Code";
                DropDownList1.DataTextField = "Name";
                DropDownList1.DataSource = countryQuery.ToList();
                DataBind();
            }
        }
    ...
    

    Элемент управления списком необходимо заполнить только при первой загрузке страницы. Условный код гарантирует, что при последующей перезагрузке страницы элемент управления списком не будет повторно заполнен, что приведет к потере выбора пользователя.

  3. Сохраните решение, выполните сборку и запустите его. Вы увидите, что элемент управления списком заполнен. Вы можете выбрать элемент, но элемент управления GridView пока не отображается.

На этом этапе у вас есть рабочий элемент управления «Раскрывающийся список», заполненный запросом LINQ к вашей модели данных сущностей.

Заполнение элемента управления GridView с помощью запроса LINQ к сущностям

В последней части этого учебника вы заполните элемент управления GridView с помощью запроса LINQ к вашей модели данных сущностей.

  1. В режиме «Вид» дважды щелкните элемент управления DropDownList. Это действие отображает код SelectedIndexChanged. Этот метод вызывается при выборе пользователем элемента в элементе управления списком и, таким образом, генерирует событие AutoPostBack.

  2. Измените соответствующий раздел кода в соответствии со следующим примером.

    ...
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            var cityQuery = from c in we.city
                            where c.CountryCode == DropDownList1.SelectedValue
                            orderby c.Name
                            select new { c.Name, c.Population, c.CountryCode };
            GridView1.DataSource = cityQuery;
            DataBind();
        }
    ...
    

    Элемент управления GridView заполняется результатом запроса LINQ к модели данных сущностей.

  3. Сохраните, выполните сборку и запустите решение. При выборе страны вы увидите, что ее города отображаются в элементе управления GridView. На рисунке ниже показана выбранная Бельгия из раскрывающегося списка и таблица с тремя столбцами: Name, Population и CountryCode.

    Рисунок 6.19 Рабочий веб-сайт

    Content is described in the surrounding text.

В этом учебнике вы увидели, как создать веб-сайт ASP.NET, а также как получить доступ к базе данных MySQL с помощью запросов LINQ к модели данных сущностей.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-tutorials-entity-framework-databinding-linq-entities.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API