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


Настройка объектов (платформа Entity Framework)

Платформа ADO.NET Entity Framework предоставляет средства для автоматического формирования уровня объектов на основе CSDL-файла модели Entity Data Model EDM. Эти классы данных можно настраивать различными способами в зависимости от требований приложения. Можно также изменять пользовательские классы данных для их работы с моделью EDM. Это полезно при обновлении классов данных существующих приложений для использования платформы Entity Framework или в случае, если необходима большая степень управления созданием классов данных.

Расширение разделяемых классов данных

Типы, определенные в модели EDM, не имеют связанных методов, подобно классам в объектно-ориентированном программировании. Они содержат только свойства, определенные в модели EDM. Можно добавить функциональность объектам, расширяя сформированные разделяемые классы данных. При формировании классов данных средствами модели Entity Data Model они реализуются в виде разделяемых классов. В разделяемом классе определение класса разбито по нескольким исходным файлам. Каждый исходный файл содержит часть определения класса, а во время компиляции приложения все части объединяются. Дополнительные сведения см. в разделах Partial (Visual Basic) и разделяемый (тип) (Справочник по C#).

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

Пользовательская бизнес-логика

При использовании сформированных классов данных можно вызывать пользовательскую бизнес-логику во время определенных операций служб объектов, например при изменениях свойств или связей. Такая бизнес-логика может включать создание дополнительных проверок или запись в журнал при изменении свойств или вызове метода SaveChanges. Бизнес-логика реализуется с помощью обработки событий служб объектов или определения пользовательских разделяемых методов, вызываемых при изменении свойств.

Ниже представлены события и методы, которые используются для вызова пользовательской бизнес-логики.

  • Onимя_свойства Разделяемые методы Changing и Onимя_свойстваChanged
    Два разделяемых метода обработки сформированных классов данных, которые вызываются службами объектов при изменении свойства. Расширьте эти методы в разделяемых классах данных, чтобы реализовать код, который выполняется при изменении свойства. Дополнительные сведения см. в разделе Как выполнить бизнес-логику при изменении свойств (платформа Entity Framework).

Пользовательские классы данных

В некоторых случаях расширение разделяемых классов путем добавления методов и свойств может оказаться недостаточно гибким решением. Рассмотрим существующее приложение платформы .NET Framework, которое использует технологию ADO.NET для передачи данных из базы данных в объекты среды CLR. Эти объекты могут содержать полезные настройки и бизнес-логику, которые нужно сохранить на уровне объектов. Такие настройки могут препятствовать миграции приложения на платформу Entity Framework. Кроме того, может потребоваться более гибкое управление типами сущностей, чем простое расширение созданных разделяемых классов.

Рекомендуемым способом применения пользовательских классов данных с моделью EDM является наследование от класса EntityObject. Если наследование от класса EntityObject невозможно или необходима более высокая степень независимости от платформы, то Entity Framework предоставляет набор интерфейсов, которые могут быть реализованы в пользовательских классах данных для работы с моделью EDM. Дополнительные сведения см. в разделе Реализация интерфейсов пользовательских классов данных (платформа Entity Framework). При использовании пользовательских классов данных необходимо применить к ним атрибуты и свойства, а также уведомлять контекст объекта при изменении свойств.

Наследование от класса EntityObject

Сформированные классы данных наследуются от класса EntityObject или ComplexObject. При использовании пользовательских классов данных с моделью EDM рекомендуется изменить их с целью наследования от одного из этих двух базовых классов. Таким образом, пользовательские классы данных получают преимущества в виде отслеживания изменений и управления связями, которые обеспечивает класс EntityObject.

При наследовании от класса EntityObject и ComplexObject следует учитывать следующее.

В следующем примере определяется пользовательский класс данных Order, наследуемый от класса EntityObject:

<EdmEntityTypeAttribute(NamespaceName:="Microsoft.Samples.Edm", Name:="Order")> _
Public Class Order
    Inherits EntityObject
[EdmEntityTypeAttribute(NamespaceName="Microsoft.Samples.Edm",Name="Order")]
public class Order : EntityObject 

Дополнительные сведения см. в разделе Как наследовать от базовых классов EntityObject и ComplexObject (платформа Entity Framework).

В этом разделе

См. также

Другие ресурсы

Службы объектов (платформа Entity Framework)
Работа с пользовательскими объектами (задачи Entity Framework)