Поделиться через


Вопросы переноса (платформа Entity Framework)

Платформа ADO.NET Entity Framework предоставляет существующим приложениям ряд преимуществ. Наиболее важным из них является возможность использования концептуальной модели для отделения структур данных, используемых приложением, от схемы в источнике данных. Это позволяет в дальнейшем значительно упростить внесение изменений в режим хранения или сам источник данных, устранив необходимость внесения соответствующих изменений в приложение. Дополнительные сведения о преимуществах использования Entity Framework см. в разделах Общие сведения о платформе Entity Framework и Entity Data Model.

Чтобы воспользоваться преимуществами, которые дает Entity Framework , необходимо перенести существующее приложение на Entity Framework . Некоторые задачи являются общими для всех перенесенных приложений. В их число входит обновление приложения для использования версии .NET Framework, начиная с 3.5 с пакетом обновления 1 (SP1), определение моделей и сопоставлений, а также настройка платформы Entity Framework. При переносе приложения на Entity Framework необходимо рассмотреть ряд дополнительных вопросов. Каких именно — зависит от типа переносимого приложения и реализуемых им функциональных возможностей. Этот раздел содержит сведения, которые помогут подобрать наилучший подход при обновлении существующих приложений.

Общие рекомендации по переносу

Следующие соображения относятся к переносу на Entity Framework любых приложений.

  • Любое приложение, использующее .NET Framework, начиная с версии 3.5 с пакетом обновления 1 (SP1), может быть перенесено на платформу Entity Framework, если эту платформу поддерживает поставщик источника данных, используемого приложением.

  • Платформа Entity Framework может поддерживать не все функции поставщика источника данных, даже если поставщик поддерживает платформу Entity Framework.

  • Большие и сложные приложения не обязательно переносить на платформу Entity Framework сразу и полностью. При этом, однако, те части приложения, которые не используют Entity Framework, будут по-прежнему требовать изменения при изменении источника данных.

  • Соединение с поставщиком данных, используемое платформой Entity Framework, может быть общим для нескольких частей приложения, поскольку на платформе Entity Framework для доступа к источнику данных служат поставщики данных ADO.NET. Например, поставщик SqlClient используется платформой Entity Framework для доступа к базе данных SQL Server. Дополнительные сведения см. в разделе Поставщик EntityClient для платформы Entity Framework.

Типичные задачи переноса

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

Cc716791.note(ru-ru,VS.100).gifПримечание
Все эти задачи выполняются автоматически при использовании средств модели EDM, начиная с .Дополнительные сведения см. в разделе Как использовать мастер моделей EDM (платформа Entity Framework).

  1. Обновление приложения.

    Проект, созданный в предыдущей версии среды Visual Studio и платформы .NET Framework, необходимо обновить для использования среды с пакетом обновления 1 (SP1) и платформы .NET Framework, начиная с версии 3.5 с пакетом обновления 1 (SP1).

  2. Определение моделей и сопоставлений.

    Файлы модели и сопоставления определяют сущности в концептуальной модели, структуры в источнике данных (таблицы, хранимые процедуры, представления и т. д.), а также сопоставление между сущностями и структурами источника данных. Дополнительные сведения см. в разделе Как определить модель и файлы сопоставления вручную (платформа Entity Framework).

    Типы, определенные в модели хранения, должны соответствовать именам объектов в источнике данных. Если существующее приложение предоставляет доступ к данным в виде объектов, необходимо убедиться в том, что сущности и свойства, определенные в концептуальной модели, соответствуют именам существующих классов и свойств данных. Дополнительные сведения см. в разделе Как настроить файлы моделирования и сопоставления для работы с пользовательскими объектами (платформа Entity Framework).

    Cc716791.note(ru-ru,VS.100).gifПримечание
    Конструктор моделей EDM позволяет переименовывать сущности концептуальной модели для обеспечения соответствия существующим объектам.Дополнительные сведения см. в разделе ADO.NET Entity Data Model Designer.

  3. Определение строки соединения.

    В платформе Entity Framework для выполнения запросов к концептуальной модели используется специальный формат строки соединения. В нее инкапсулированы сведения о файлах модели и сопоставления, а также о соединении с источником данных. Дополнительные сведения см. в разделе Как определить строку соединения (платформа Entity Framework).

  4. Настройка проекта Visual Studio.

    Ссылки на сборки платформы Entity Framework и файлы модели и сопоставления должны быть добавлены в проект Visual Studio. Можно также добавить в проект файлы сопоставления, чтобы выполнялось их развертывание вместе с приложением в каталоге, указанном в строке соединения. Дополнительные сведения см. в разделе Как вручную настроить проект Entity Framework.

Приложения с существующими объектами

Начиная с .NET Framework версии 4, Entity Framework поддерживает традиционные объекты среды CLR (POCO), которые называются также объектами, пропускающими сохраняемость. В большинстве случаев существующие объекты могут работать с Entity Framework при внесении незначительных изменений. Дополнительные сведения см. в разделе Работа с сущностями POCO (платформа Entity Framework). Можно также перенести приложение в Entity Framework и использовать классы данных, сформированные средствами платформы Entity Framework. Дополнительные сведения см. в разделе Как использовать мастер моделей EDM (платформа Entity Framework).

Приложения, использующие поставщики ADO.NET

Поставщики ADO.NET, например, SqlClient, позволяют выполнять запросы к источнику данных, возвращающие табличные данные. Кроме того, данные могут быть загружены в объект DataSet ADO.NET. В следующем списке приведены соображения по обновлению приложений, пользующихся существующими поставщиками ADO.NET.

  • Отображение табличных данных с помощью модуля чтения данных.
    Можно попробовать выполнить запрос Entity SQL при помощи поставщика EntityClient и выполнить перечисление по возвращенному объекту EntityDataReader. Этим способом следует пользоваться только в том случае, если приложение отображает табличные данные с помощью модуля чтения данных и не нуждается в предоставляемых Entity Framework возможностях по материализации данных в объекты, отслеживанию изменений и выполнению обновлений. Можно продолжать пользоваться существующим кодом доступа к данным, который выполняет обновления источника данных, но пользоваться для этого соединением, доступным через свойство StoreConnection объекта EntityConnection. Дополнительные сведения см. в разделе Поставщик EntityClient для платформы Entity Framework.
  • Работа с DataSet.
    Платформа Entity Framework предоставляет во многом те же функциональные возможности, что и DataSet, включая сохраняемость в памяти, отслеживание изменений, привязку данных и сериализацию объектов в виде XML-данных. Дополнительные сведения см. в разделе Работа с объектами (платформа Entity Framework).

    Если Entity Framework не реализует нужные приложению функциональные возможности DataSet, то можно задействовать для этого возможности LINQ to DataSet . Дополнительные сведения см. в разделе LINQ to DataSet.

Приложения с привязкой данных к элементам управления

Платформа .NET Framework позволяет инкапсулировать данные в источнике данных, таком как DataSet или элемент управления источником данных ASP.NET, а затем привязывать элементы пользовательского интерфейса к этим элементам управления данными. В следующем списке приведены соображения, касающиеся привязки элементов управления к данным платформы Entity Framework.

  • Привязка данных к элементам управления.
    При обработке запроса к концептуальной модели Entity Framework возвращает данные в виде объектов, которые являются экземплярами типов сущностей. Эти объекты могут быть привязаны непосредственно к элементам управления, причем такая привязка поддерживает обновление данных. Это означает, что любое изменение данных в элементе управления (например, изменение строки в DataGridView) будет автоматически сохранено в базе данных при вызове метода SaveChanges.

    Если в приложении применяется перечисление результатов запроса для отображения данных в DataGridView или любом другом элементе управления, поддерживающем привязку к данным, то можно модифицировать это приложение для привязки элемента управления к результату ObjectQuery.

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

  • Элементы управления источником данных ASP.NET.
    Платформа Entity Framework включает элемент управления источником данных, предназначенный для упрощения привязки данных в веб-приложениях ASP.NET. Дополнительные сведения см. в разделе Элемент управления источником данных Entity Framework.

Другие вопросы

Далее приведены вопросы, которые могут потребовать рассмотрения при переносе на платформу Entity Framework некоторых типов приложений.

  • Приложения, реализующие службы данных.
    Веб-службы и приложения, созданные на основе технологии WCF, предоставляют доступ к данным из базового источника данных с использованием формата обмена сообщениями «запрос-ответ» XML. Платформа Entity Framework поддерживает сериализацию объектов сущностей с использованием двоичной сериализации, сериализации XML или контрактной сериализации данных WCF. Двоичная сериализация и сериализация WCF поддерживают полную сериализацию графов объектов. Дополнительные сведения см. в разделе Построение многоуровневых приложений (платформа Entity Framework).
  • Приложения, использующие XML-данные.
    Сериализация объектов позволяет создать службы данных на платформе Entity Framework . Такие службы поставляют данные приложениям, принимающим XML-данные, например, веб-приложениям на основе технологии AJAX. В таких случаях рассмотрите возможность использования служб данных ADO.NET. Эти службы данных основаны на модели EDM и предоставляют динамический доступ к данным сущностей через стандартные операции REST протокола HTTP, такие как GET, PUT и POST. Дополнительные сведения см. в разделе ADO.NET Data Services.

    Платформа Entity Framework не поддерживает собственный тип данных XML. Это означает, что если сущность сопоставлена с таблицей, имеющей XML-столбец, то эквивалентное свойство сущности для столбца XML является строковым. Объекты могут быть отсоединены и сериализованы в виде XML. Дополнительные сведения см. в разделе Сериализация объектов (платформа Entity Framework).

    Если в приложении необходимо предусмотреть возможность запрашивать XML-данных, то можно воспользоваться преимуществами запросов LINQ на основе применения LINQ to XML. Дополнительные сведения см. в разделе LINQ to XML.

  • Приложения, сохраняющие состояние.
    Часто веб-приложению ASP.NET необходимо сохранение состояния веб-страницы или сеанса пользователя. Объекты экземпляра ObjectContext могут быть сохранены в состоянии просмотра на клиенте или в состоянии сеанса на сервере, а затем получены и заново присоединены к новому контексту объекта. Дополнительные сведения см. в разделе Присоединение и отсоединение объектов (платформа Entity Framework).

См. также

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

Вопросы развертывания (платформа Entity Framework)
Терминология платформы Entity Framework