Выпущена новая версия Entity Framework Feature CTP 5







Для загрузки доступна очередная CTP-версия дополнительных функций для ADO.NET Entity Framework 4.0.

В этом выпуске представлены следующие нововведения и изменения:

DbContext API

  • поддержка Model-First и Database-First: включены новые шаблоны T4 для использования DbContext/DbSet;
  • валидация объектов при SaveChanges: валидация основана на Data Annotations и пока поддерживается только в Code First;
  • Change tracking API: позволяет получить доступ к информации и операциям применимым к объектам, которые отслеживаются DbContext
    • доступ к оригинальным, текущим значениям и значениям в хранилище;
    • состояние Entity (т.е. Added, Unchanged, Modified, Deleted);
    • явная загрузка: API для загрузки содержимого navigation property из базы данных;
  • Databinding: DbSet.Local теперь содержит ObservableCollection представляющую локальное содержимое DbSet. Это может быть полезно при работе с привязками данных в WPF-приложениях. Новый метод расширения ToBindingList может быть использован для получения списка привязок для приложений Windows Forms.
  • функция No-Tracking Queries: может быть использована с помощью метода расширения AsNoTracking у IQueryable<T>;
  • конфигурация DbContext: следующие опции могут быть сконфигурированы для экземпляра DbContext:
    • Lazy Loading
    • Validate On Save
    • Auto Detect Changes
  • исполнение обычных команд и запросов SQL: позволяет выполнять обычные SQL-запросы и команды через методы SqlQuery и SqlCommand у DbContext.Database. Результаты могут быть опционально материализованы в экземпляры объектов отслеживаемых DbContext через метод SqlQuery у DbSet.
  • улучшения в разрешении конкурентных конфликтов: добавлены улучшенные сообщения об исключениях, которые позволяют получить доступ к экземпляру объекта с возможностью разрешить конфликт с помощью текущего, оригинального значений или значения из базы данных;
  • DbContext.ObjectContext был изменен: ObjectContext, который ранее был с модификтором protected стал доступнен через явную реализацию интерфейса, что позволяет внешним компонентам использовать контекст. Теперь получение контекста выглядит так: ((IObjectContextAdapter)myContext).ObjectContext
  • исключение таблицы EdmMetadata: если вы хотите исключить таблицу EdmMetadata, когда ваша база данных генерируется Code First, то вы можете сделать это удалив соглашение (заметьте, что вам не потребуется делать этого когда вы будете мапить существующую БД);
  • типы переименованные в пространстве имен System.Data.Entity.Database:
    имена в CTP4: Database, RecreateDatabaseIfModelChanges, AlwaysRecreateDatabase
    новые имена в CTP5: DbDatabase, RecreateDatabaseIfModelChanges, DropCreateDatabaseIfModelChanges

Code First

  • улучшения в Code First для поддержки существующих баз данных: CTP5 исключает потребность в выключении инициализаторов БД когда вы работаете с Code First и существующей БД. Если вы мапите существующую БД, которую Code First не создает, то теперь система просто ‘поверит вам’;
  • поддержка дополнительных атрибутов Data Annotation: полный список поддерживаемых атрибутов теперь таков:
    • KeyAttribute;
    • StringLengthAttribute;
    • MaxLengthAttribute;
    • ConcurrencyCheckAttribute;
    • RequiredAttribute;
    • TimestampAttribute;
    • ComplexTypeAttribute;
    • ColumnAttribute (применяется к свойству, чтобы указать имя колонки, порядковый номер и тип данных);
    • TableAttribute (применяется к классу, чтобы указать имя таблицы и схемы);
    • InversePropertyAttribute (применяется к navigation property, чтобы указать свойство которое представляет другой конец отношения);
    • ForeignKeyAttribute (применяется к navigation property, чтобы указать свойство которое представляет внешний ключ отношения);
    • DatabaseGeneratedAttribute (применяется к свойству, чтобы указать как БД должна генерировать значение свойства, т.е. Identity, Computed или None);
    • NotMappedAttribute: применяется к свойству или классу, для того чтобы исключить его из мапинга базы данных.
  • улучшения в Fluent API:
    • упрощенный мапинг таблиц и колонок;
    • возможность игнорировать классы и свойства;
  • функция подключаемых соглашений (Pluggable Conventions): включена в CTP5 на основе большого количества запросов со стороны разработчиков. Все еще в работе, но создатели ожидают отзывы. Больше информации о данной функции появится в течении нескольких недель.

Другие изменения: Новое имя сборки: EntityFramework.dll.

Загрузить новую версию Microsoft ADO.NET Entity Framework Feature Community Technology Preview 5 можно по этой ссылке.

PS: официальный анонс

Progg it
Добавить комментарий






07.12.2017 11:40
0
Entity Framework по-прежнему не умеет мэппить enum-типы на целочисленные в базе? А то это очень неприятное ограничение. LINQ to SQL и то умеет.
07.12.2017 11:59
0
разработчики неоднократно говорили, что поддержка enum появится со следующим релизом EF. Вероятно, уже скоро
07.12.2017 13:57
0
Вроде бы такая мелочь, а без нее очень непрятно. Никакой тебе статической типизации.
zandroid
07.12.2017 19:33
0
А как там с поддержкой типов hierarchyid и geometry из SqlServer2008?
quiz
07.12.2017 19:55
0
Как там с UDF, нормальный маппинг есть?
Insomniac
08.12.2017 0:39
0
Может я что то пропустил но many-to-many там есть?
08.12.2017 5:18
0
изначально?
Добавить комментарий