Как добавить объект в качестве источника данных проекта (платформа Entity Framework)

Можно создавать источники данных на основании объектов из приложения Visual Studio. После определения типа сущности как источника данных в проекте можно создавать формы, в которых будут отображаться данные сущностей, перетаскивая элементы из окна Источники данных в формы. Эти элементы становятся в форме элементами управления, привязанными к источнику данных. Дополнительные сведения см. в разделе Привязка объектов к элементам управления (платформа Entity Framework).

В этом разделе будет создан источник данных для типа SalesOrderHeader в модели Adventure Works Sales. Затем этот источник данных будет использован для создания формы Windows, в которой элементы управления привязаны к данным сущности. Чтобы завершить эти процедуры, необходимо добавить в проект модель AdventureWorks Sales и настроить проект для использования платформы Entity Framework . Для этого выполните действия, описанные в разделе Как использовать мастер моделей EDM (платформа Entity Framework).

Создание источника данных на основе типов SalesOrderHeader

  1. Если перед этим был добавлен элемент модели EDM, соберите проект.

  2. В меню Данные выберите команду Добавить новый источник данных.

  3. На странице Выбор типа источника данных выберите тип Объект.

  4. На странице Выбор объекта для привязки раскройте узел проекта, раскройте узел пространства имен проекта и выберите тип SalesOrderHeader в представлении дерева.

  5. Нажмите кнопку Готово.

    Источник данных SalesOrderHeader добавлен в окно Источники данных.

Добавление в форму Windows элементов управления, привязанных к источнику данных

  1. В окне Источники данных разверните узел SalesOrderHeader.

  2. Перетащите одно или несколько свойств из узла SalesOrderHeader в форму.

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

  3. Перетащите в форму свойство навигации SalesOrderDetail.

  4. Это приведет к созданию элемента управления salesOrderDetailBindingSource и присваиванию свойству DataSource этого элемента управления значения salesOrderHeaderBindingSource, а свойству DataMember — значения SalesOrderDetail. Кроме того, в форме будет создан привязанный к данным элемент управления salesOrderDetailDataGridView в сочетании с элементом управления меткой, имеющим соответствующий заголовок.

Привязка источника данных к результату запроса объектов

  1. Откройте страницу кода формы и добавьте следующие инструкции using (Imports в Visual Basic):

    using System.Data.Objects;
    
  2. В разделяемый класс, определяющий форму, добавьте следующий код, который создает экземпляр объекта ObjectContext и определяет константу customerID.

    private AdventureWorksEntities context;
    private const int customerId = 277;
    
  3. В конструкторе форм дважды щелкните форму.

    После этого будет открыта страница кода формы и создан метод обработчика события Load для этой формы.

  4. Скопируйте и вставьте в обработчике события Load следующий код.

    // Initialize the object context.
    context = new AdventureWorksEntities();
    
    try
    {
        // Create a query for orders and related items.
        var orderQuery = context.SalesOrderHeaders
            .Where("it.CustomerID = @customerId",
            new ObjectParameter("customerId", customerId))
            .Include("SalesOrderDetails");
    
        // Set the data source of the binding source to the ObjectResult 
        // returned when the query is executed.
        salesOrderHeaderBindingSource.DataSource = 
            orderQuery.Execute(MergeOption.AppendOnly);
    }
    catch (EntitySqlException ex)
    {
        MessageBox.Show(ex.Message);
    }
    

    Этот код выполняет запрос, который возвращает коллекцию объектов SalesOrderHeader и связанных с ними объектов SalesOrderDetail для конкретного заказчика, а также привязывает коллекцию объектов SalesOrderHeader к salesOrderHeaderBindingSource.

См. также

Задачи

Как привязать объекты к элементам управления WPF (платформа Entity Framework)
Как привязать объекты к элементам управления Windows Form (платформа Entity Framework)

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

Привязка объектов к элементам управления (платформа Entity Framework)