Jump to content

Entity Framework

(Перенаправлено из модели данных сущности )
Entity Framework
Оригинальный автор(ы) Майкрософт
Разработчик(и) Фонд .NET
Первоначальный выпуск 11 августа 2008 г .; 15 лет назад ( 11.08.2008 )
Стабильная версия
Entity Framework 6: v6.4.4
Ядро Entity Framework: v8.0.0 / Entity Framework Core: 14 ноября 2023 г .; 8 месяцев назад ( 14.11.2023 ) [1]
Репозиторий github /дотнет /ef6
github /дотнет /efcore
Написано в С#
Платформа .NET Framework ,
.NET ядро
Тип Объектно-реляционное отображение
Лицензия Лицензия Апач 2.0
Веб-сайт документы .microsoft /en-нас / если /

Entity Framework ( EF ) — это открытый исходный код. [2] Платформа объектно-реляционного сопоставления (ORM) для ADO.NET . Первоначально он поставлялся как неотъемлемая часть .NET Framework , однако, начиная с Entity Framework версии 6.0, он поставлялся отдельно от .NET Framework.

Entity Framework 6.4 был последней версией классической платформы. Хотя Entity Framework 6 по-прежнему поддерживается, он больше не разрабатывается и будет получать только исправления проблем безопасности. [3]

Новая платформа, известная как Entity Framework Core (EF Core), была представлена ​​в 2016 году с аналогичным, но не полным набором функций. [4] Нумерация версий этой платформы возобновлена ​​с 1.0, а последняя версия EF Core — 8.0. [5]

Entity Framework — это набор технологий в ADO.NET , который поддерживает разработку программных приложений, ориентированных на данные. Архитекторы и разработчики приложений, ориентированных на данные, обычно сталкиваются с необходимостью достижения двух совершенно разных целей. Они должны моделировать сущности, отношения и логику бизнес-задач, которые они решают, а также работать с механизмами обработки данных, используемыми для хранения и извлечения данных. Данные могут храниться в нескольких системах хранения, каждая из которых имеет свои собственные протоколы; даже приложения, работающие с одной системой хранения, должны балансировать требования системы хранения с требованиями написания эффективного и удобного в сопровождении кода приложения. Эту проблему обычно называют « несоответствием объектно-реляционного импеданса ». [6]

Многие инструменты объектно-реляционного картирования (ORM) (также известные как «объектно-реляционные менеджеры») были разработаны, чтобы дать разработчикам возможность работать с данными в форме объектов и свойств, специфичных для предметной области, таких как клиенты и адреса клиентов, не беспокоясь о том, себя с базовыми таблицами и столбцами базы данных, в которых хранятся эти данные. С помощью ORM разработчики могут работать на более высоком уровне абстракции при работе с данными, а также создавать и поддерживать приложения, ориентированные на данные, с меньшим количеством кода, чем в традиционных приложениях. Entity Framework — это решение ORM, которое в настоящее время предлагается для использования в стеке разработки Microsoft. [7]

Первая версия Entity Framework (EFv1) была включена в .NET Framework 3.5 с пакетом обновления 1 и Visual Studio 2008 с пакетом обновления 1, выпущенные 11 августа 2008 года (15 лет назад) ( 2008-08-11 ) . Эта версия подверглась широкой критике, даже получив «вотум недоверия», подписанный как минимум тысячей разработчиков. [8]

Вторая версия Entity Framework, получившая название Entity Framework 4.0 (EFv4), была выпущена как часть .NET 4.0 12 апреля 2010 года и устранила многие критические замечания, высказанные в адрес версии 1. [9]

Третья версия Entity Framework, версия 4.1, была выпущена 12 апреля 2011 г. с поддержкой Code First.

Обновление версии 4.1 под названием Entity Framework 4.1 Update 1 было выпущено 25 июля 2011 г. Оно включает исправления ошибок и новые поддерживаемые типы.

Версия 4.3.1 вышла 29 февраля 2012 г. [10] Было несколько обновлений, например, поддержка миграции.

Версия 5.0.0 вышла 11 августа 2012 г. [11] и ориентирован на .NET Framework 4.5.Кроме того, эта версия доступна для .Net framework 4, но без каких-либо преимуществ во время выполнения по сравнению с версией 4.

Версия 6.0 вышла 17 октября 2013 г. [12] и теперь это проект с открытым исходным кодом, лицензированный по лицензии Apache License v2. Как и ASP.NET MVC , его исходный код размещается на GitHub с использованием Git. [13] В этой версии имеется ряд улучшений для поддержки кода . [14]

Затем Microsoft решила модернизировать, компонентизировать и сделать .NET кроссплатформенным для Linux, OSX и других систем, а это означает, что следующая версия Entity Framework будет полностью переписана. [15] 27 июня 2016 года он был выпущен как Entity Framework Core 1.0 вместе с ASP.NET Core 1.0 и .NET Core 1.0. [16] Первоначально он назывался Entity Framework 7, но был переименован, чтобы подчеркнуть, что это была полная переработка, а не постепенное обновление, и она не заменяет EF6. [17]

Entity Framework Core 1.0 распространяется по лицензии Apache License v2 и полностью создан в открытом доступе на GitHub . Хотя Entity Framework Core 1.0 имеет некоторые концептуальные сходства с предыдущими версиями Entity Framework, это была совершенно новая кодовая база, разработанная как более эффективная, мощная, гибкая и расширяемая, работающая в Windows, Linux и OSX и поддерживающая новый диапазон реляционных технологий. и хранилища данных NoSQL . [15]

Entity Framework Core 2.0 был выпущен 14 августа 2017 г. (6 лет назад) ( 14 августа 2017 г. ) вместе с Visual Studio 2017 15.3 и ASP.NET Core 2.0. [18]

Entity Framework Core 3.0 был выпущен 23 сентября 2019 г. (4 года назад) ( 2019-09-23 ) вместе с Visual Studio 2019 16.3 и ASP.NET Core 3.0. [19]

Entity Framework Core 3.1 (EF Core 3.1) был официально выпущен для производственного использования 3 декабря 2019 года (4 года назад) ( 2019-12-03 ) и будет предпочтительной версией с долгосрочной поддержкой как минимум до 3 декабря 2022 года. [20] [21]

Entity Framework Core 5.0 (EF Core 5) был выпущен для промышленного использования 9 ноября 2020 г. (3 года назад) ( 09.11.2020 ) . [20] [21] Он был выведен из эксплуатации и прекратил поддержку через 1,5 года, 10 мая 2022 года. [22]

Entity Framework Core 6.0 (EF Core 6) был выпущен 10 ноября 2021 г. (2 года назад) ( 10.11.2021 ) [23] [24] и будет предпочтительной версией с долгосрочной поддержкой как минимум до 12 ноября 2024 года. [25]

Entity Framework Core 7.0 (EF Core 7) был выпущен 8 ноября 2022 г. (20 месяцев назад) ( 2022-11-08 ) [26] [27] добавление таких функций, как столбцы JSON и массовые обновления .

Entity Framework Core 8.0 (EF Core 8) был выпущен 14 ноября 2023 г. (8 месяцев назад) ( 2023-11-14 ) [28] [29] добавление таких функций, как объекты Value, с использованием сложных типов и коллекций примитивов .

Архитектура

[ редактировать ]
Стек ADO.NET Entity Framework.

Архитектура ADO.NET Entity Framework снизу вверх состоит из следующего: [ нужна ссылка ]

  • Поставщики конкретных источников данных , которые абстрагируют интерфейсы ADO.NET для подключения к базе данных при программировании на основе концептуальной схемы.
  • Поставщик карт — поставщик, специфичный для базы данных, который преобразует дерево команд Entity SQL в запрос в собственном варианте SQL базы данных. Он включает в себя мост для конкретного магазина , который является компонентом, ответственным за преобразование общего дерева команд в дерево команд для конкретного магазина.
  • Синтаксический анализатор EDM и сопоставление представлений , которое использует спецификацию SDL модели данных и то, как она отображается на базовую реляционную модель, и позволяет программировать на основе концептуальной модели. Из реляционной схемы он создает представления данных, соответствующие концептуальной модели. Он объединяет информацию из нескольких таблиц, чтобы объединить их в одну сущность, и разбивает обновление сущности на несколько обновлений для любой таблицы (таблиц), внесенных в эту сущность.
  • Конвейер запросов и обновлений обрабатывает запросы, фильтрует и обновляет запросы для преобразования их в канонические деревья команд, которые затем преобразуются поставщиком карт в запросы для конкретного магазина.
  • Службы метаданных , которые обрабатывают все метаданные, связанные с сущностями, отношениями и сопоставлениями.
  • Транзакции для интеграции с транзакционными возможностями базового хранилища. Если базовое хранилище не поддерживает транзакции, его поддержку необходимо реализовать на этом уровне.
  • API концептуального уровня — среда выполнения, которая предоставляет модель программирования для кодирования в соответствии с концептуальной схемой. Он соответствует шаблону ADO.NET, в котором объекты Connection используются для обращения к поставщику карт, используются объекты Command для отправки запроса и возвращаются EntityResultSets или EntitySets, содержащие результат.
  • Отключенные компоненты , которые локально кэшируют наборы данных и наборы сущностей для использования ADO.NET Entity Framework в периодически подключаемой среде.
  • Встроенная база данных . ADO.NET Entity Framework включает облегченную встроенную базу данных для кэширования на стороне клиента и запроса реляционных данных.
  • Инструменты проектирования , такие как Mapping Designer, также включены в состав ADO.NET Entity Framework, что упрощает работу по сопоставлению концептуальной схемы с реляционной схемой и указанию того, какие свойства типа сущности соответствуют какой таблице в базе данных.
  • Уровень программирования , который представляет EDM как программные конструкции, которые могут использоваться языками программирования.
    • Службы объектов автоматически генерируют код для классов CLR, которые предоставляют те же свойства, что и сущность, что позволяет создавать экземпляры сущностей как объектов .NET.
    • Веб-сервисы , которые предоставляют сущности как веб-сервисы.
  • Сервисы высокого уровня , такие как сервисы отчетов, которые работают с сущностями, а не с реляционными данными.

Модель данных сущности

[ редактировать ]

Модель Entity Data Model ( EDM ) определяет концептуальную модель (CSDL) данных с использованием метода моделирования, который сам по себе называется Entity Data Model, расширенной версией модели сущности-связи . [30] Модель данных в первую очередь описывает сущности и ассоциации , в которых они участвуют. Схема EDM выражается на языке определения схемы (SDL), который представляет собой приложение XML (расширенный язык разметки). Кроме того, также необходимо указать отображение (MSL) элементов концептуальной схемы (CSDL) в схему хранения (SSDL). Спецификация сопоставления также выражается в XML. [31]

Модель сущности, созданная с использованием Entity Framework 6, которая представляет таблицы «Клиент», «Заказ» и «Продукт».

Visual Studio также предоставляет Entity Designer для визуального создания EDM и спецификации сопоставления. Этот подход называется подходом «Сначала модель» в качестве альтернативы подходам «Сначала код» и «Сначала база данных». Результатом работы инструмента является XML-файл (*.edmx), определяющий схему и сопоставление. Файл Edmx содержит артефакты метаданных EF (содержимое CSDL/MSL/SSDL). Эти три файла (csdl, msl, ssdl) также можно создавать или редактировать вручную. [ нужна ссылка ] Подход «Модель прежде всего» не будет поддерживаться в версии EF Core. [32]

Картирование

[ редактировать ]

Мастер модели сущностных данных [33] в Visual Studio в большинстве случаев изначально генерируется взаимно однозначное (1:1) сопоставление между схемой базы данных и концептуальной схемой. В реляционной схеме элементы состоят из таблиц, при этом первичные и внешние ключи связывают связанные таблицы вместе. Напротив, типы сущностей определяют концептуальную схему данных. [ нужна ссылка ]

Типы сущностей представляют собой совокупность нескольких типизированных полей — каждое поле сопоставляется с определенным столбцом в базе данных — и может содержать информацию из нескольких физических таблиц. Типы сущностей могут быть связаны друг с другом независимо от отношений в физической схеме. Связанные сущности также отображаются аналогичным образом – через поле, имя которого обозначает отношение, в котором они участвуют и к которому они обращаются, которое вместо получения значения из какого-либо столбца в базе данных обходит отношение и возвращает объект (или коллекцию сущностей) с с чем это связано. [ нужна ссылка ]

Типы сущностей образуют класс объектов, которым соответствуют сущности, причем сущности являются экземплярами типов сущностей. Сущности представляют собой отдельные объекты, которые составляют часть проблемы, решаемой приложением, и индексируются ключом. Например, преобразуя описанную выше физическую схему, у нас будет два типа сущностей:

  • CustomerEntity , который содержит имя клиента из таблицы «Клиенты» и адрес клиента из таблицы «Контакты» .
  • OrderEntity , который инкапсулирует заказы определенного клиента, извлекая их из таблицы Orders .

Логическая схема и ее сопоставление с физической схемой представлены как модель данных объекта (EDM), заданная в виде XML-файла. ADO.NET Entity Framework использует EDM для фактического выполнения сопоставления, позволяя приложению работать с сущностями, при этом внутренне абстрагируя использование таких конструкций ADO.NET, как DataSet и RecordSet . ADO.NET Entity Framework выполняет соединения, необходимые для получения справочной информации об объекте из нескольких таблиц или при прохождении связи. Когда сущность обновляется, она отслеживает, из какой таблицы поступила информация, и выдает операторы обновления SQL для обновления таблиц, в которых были обновлены некоторые данные. ADO.NET Entity Framework использует eSQL, производную от SQL, для выполнения запросов, теоретико-множественных операций и обновления сущностей и их отношений. При необходимости запросы в eSQL затем преобразуются в собственный вариант SQL базовой базы данных. [ нужна ссылка ]

Типы сущностей и наборы сущностей просто образуют логическую схему EDM и могут быть представлены как угодно. ADO.NET Entity Framework включает службу объектов , которая представляет эти сущности как объекты , а элементы и связи представляются как свойства. Таким образом, объекты Entity являются лишь интерфейсом для экземпляров типов сущностей EDM, что позволяет объектно-ориентированным языкам получать к ним доступ и использовать их. Аналогичным образом могут быть созданы другие внешние интерфейсы, которые предоставляют объекты через веб-службы (например, WCF Data Services ) или XML, который используется, когда объекты сериализуются для постоянного хранения или передачи по сети. [34]

Сущности

[ редактировать ]

Сущности** являются экземплярами EntityType s; они представляют собой отдельные экземпляры объектов (таких как клиент , заказы ), к которым относится информация. Идентичность сущности определяется типом сущности, экземпляром которой она является; в этом смысле тип сущности определяет класс, к которому принадлежит сущность, а также определяет, какие свойства будет иметь сущность. Свойства описывают некоторые аспекты сущности, присваивая ей имя и тип. Свойства типа сущности в ADO.NET Entity Framework полностью типизированы и полностью совместимы с системой типов, используемой в системе СУБД, а также с системой общих типов .NET Framework. Свойство может быть SimpleType или ComplexType , а также может быть многозначным. Все EntityType принадлежат некоторому пространству имен и имеют свойство EntityKey , которое уникально идентифицирует каждый экземпляр типа сущности. Различные типы недвижимости различаются следующим образом: [ нужна ссылка ]

  • SimpleType соответствует примитивным типам данных, таким как целые числа , символы и числа с плавающей запятой . [35]
  • ComplexType — это совокупность нескольких свойств типа SimpleType или ComplexType . в отличие от EntityType Однако, , ComplexTypes не может иметь EntityKey . В Entity Framework v1 сложные типы не могут быть унаследованы. [36]

Все экземпляры сущностей размещаются в EntityContainers, которые представляют собой контейнеры для сущностей каждого проекта. Каждый проект имеет один или несколько именованных EntityContainers, которые могут ссылаться на сущности в нескольких пространствах имен и типах сущностей. Несколько экземпляров одного типа сущности могут храниться в коллекциях, называемых EntitySets. Один тип сущности может иметь несколько наборов EntitySet. [ нужна ссылка ]

Примитивные типы EDM (простые типы): [35] [37]

Тип электроэрозионного электроэрозионного станка CLR Сопоставление типов
Эдм.Бинарный Байт[]
Edm.Boolean логическое значение
Эдм.Байт Байт
Эдм.ДатаВремя ДатаВремя
Эдм.DateTimeOffset ДатаВремяСмещение
Эдм.Десятичный десятичный
Эдм.Дабл Двойной
Эдм.Гид Руководство
Эдм.Int16 Int16
Эдм.Int32 Int32
Эдм.Int64 Int64
Эдм.SByte SByte
Эдм.Сингл Одинокий
Эдм.Строка Нить
Эдм.Время TimeSpan

Отношения

[ редактировать ]

Любые два типа сущностей могут быть связаны либо отношением ассоциации , либо отношением включения . Например, счет за доставку выставляется клиенту — это связь, тогда как заказ, содержащий сведения о заказе, — это включающее отношение. Отношение включения также можно использовать для моделирования наследования между сущностями. Связь между двумя типами сущностей определяется типом отношений , экземпляры которого, называемые отношениями , связывают экземпляры сущностей. В будущих выпусках могут быть представлены другие виды типов отношений, такие как Composition или Identification . [ нужна ссылка ]

Типы отношений характеризуются степенью (арностью) или количеством типов сущностей, с которыми они связаны, и их множественностью. Однако в первоначальном выпуске ADO.NET Entity Framework отношения ограничиваются бинарными (второй степени) двунаправленными отношениями. Множественность определяет, сколько экземпляров сущности могут быть связаны друг с другом. В зависимости от множественности связи могут быть типа «один к одному», «один ко многим» или «многие ко многим». Отношения между сущностями именуются; имя называется Роль. Это определяет цель отношений. [ нужна ссылка ]

С типом связи также может быть связана операция или действие , что позволяет выполнять некоторые действия над объектом в случае выполнения действия над связанным объектом. Отношения могут быть указаны для выполнения действия , когда какая-либо операция выполняется над связанной сущностью. Например, при удалении сущности, которая является частью отношения ( операция OnDelete ), можно предпринять следующие действия: [38]

  • Cascade , который предписывает удалить экземпляр связи и все связанные экземпляры сущностей.
  • Никто .

Для отношений ассоциации, которые могут иметь разную семантику на обоих концах, для каждого конца могут быть указаны разные действия. [ нужна ссылка ]

Язык определения схемы

[ редактировать ]

ADO.NET Entity Framework использует язык определения данных на основе XML, называемый языком определения схемы (SDL), для определения схемы EDM. SDL определяет SimpleTypes, аналогичные примитивным типам CTS , включая String , Int32 , Double , Decimal , Guid и DateTime , среди прочих. Enumeration . , определяющий карту примитивных значений и имен, также считается простым типом Перечисления поддерживаются только начиная с версии платформы 5.0. ComplexTypes создаются из совокупности других типов. Коллекция свойств этих типов определяет тип сущности. Это определение можно записать в грамматике EBNF как: [ нужна ссылка ]

EntityType ::=   ENTITYTYPE entityTypeName [BASE entityTypeName]    [ABSTRACT true|false] KEY propertyName [, propertyName]*    {(propertyName PropertyType [PropertyFacet]*) +}PropertyType ::= (  (PrimitiveType [PrimitiveTypeFacets]*)    | (complexTypeName)    | RowType  PropertyFacet ::= (    [NULLABLE true | false]    | [DEFAULT defaultVal]     | [MULTIPLICITY [1|*]]  )  PropertyTypeFacet ::=     MAXLENGTH | PRECISION | SCALE     | UNICODE | FIXEDLENGTH | COLLATION    | DATETIMEKIND | PRESERVESECONDS  PrimitiveType ::=     BINARY | STRING | BOOLEAN    | SINGLE | DOUBLE | DECIMAL | GUID    | BYTE | SBYTE | INT16 | INT32 | INT64    | DATETIME | DATETIMEOFFSET | TIME)

Фасеты используются для описания метаданных свойства, например, имеет ли оно значение NULL или имеет значение по умолчанию, а также мощность свойства, т. е. является ли свойство однозначным или многозначным. Кратность «1» обозначает однозначное свойство; «*» означает, что это многозначное свойство. Например, сущность можно обозначить на SDL как: [39]

<ComplexType Name="Addr">    <Property Name="Street" Type="String" Nullable="false" />    <Property Name="City" Type="String" Nullable="false" />    <Property Name="Country" Type="String" Nullable="false" />    <Property Name="PostalCode" Type="Int32" /></ComplexType><EntityType Name="Customer">    <Key>        <PropertyRef Name="Email" />    </Key>    <Property Name="Name" Type="String" />    <Property Name="Email" Type="String" Nullable="false" />    <Property Name="Address" Type="Addr" /></EntityType>

Тип связи определяется как указание конечных точек и их кратности. Например, связь «один ко многим» между Клиентом и Заказами можно определить как

<Association Name="CustomerAndOrders">    <End Type="Customer" Multiplicity="1" />    <End Type="Orders" Multiplicity="*">        <OnDelete Action="Cascade" />    </End></Association>

Запрос данных

[ редактировать ]

Сущностный SQL

[ редактировать ]

ADO.NET Entity Framework использует вариант языка структурированных запросов под названием Entity SQL , который предназначен для написания декларативных запросов и обновлений сущностей и отношений сущностей — на концептуальном уровне. Он отличается от SQL тем, что не имеет явных конструкций для соединений , поскольку EDM предназначен для абстрактного разделения данных по таблицам. [ нужна ссылка ]

Запросы к концептуальной модели выполняются классами EntityClient , которые принимают запросы Entity SQL. Конвейер запросов анализирует запрос Entity SQL в дереве команд, разделяя запрос на несколько таблиц, которые передаются поставщику EntityClient. Как и поставщики данных ADO.NET, поставщик EntityClient также инициализируется с использованием объекта Connection , которому в дополнение к обычным параметрам хранилища данных и информации аутентификации требуются схема SDL и информация о сопоставлении. Поставщик EntityClient, в свою очередь, затем преобразует дерево команд Entity SQL в SQL-запрос в собственном варианте базы данных. Затем выполнение запроса возвращает набор результатов Entity SQL, который не ограничен табличной структурой, в отличие от наборов результатов ADO.NET. [ нужна ссылка ]

Entity SQL расширяет возможности SQL, добавляя внутреннюю поддержку: [ нужна ссылка ]

  • Types , поскольку объекты ADO.NET полностью типизированы.
  • EntitySets , которые рассматриваются как коллекции сущностей.
  • Компонуемость , которая снимает ограничения на использование подзапросов.

Канонические функции Entity SQL

[ редактировать ]

Канонические функции поддерживаются всеми поставщиками данных, совместимыми с Entity Framework. Их можно использовать в запросе Entity SQL. Кроме того, большинство методов расширения в LINQ to Entities переводятся в канонические функции. Они независимы от какой-либо конкретной базы данных. Когда поставщик данных ADO.NET получает функцию, он преобразует ее в нужный оператор SQL. [40]

Но не все СУБД имеют равноценный функционал и набор стандартных встроенных функций. Есть различия и в точности расчетов. Таким образом, не все канонические функции поддерживаются для всех баз данных, и не все канонические функции возвращают одинаковые результаты. [ нужна ссылка ]

Группа Канонические функции [40]
Агрегатные функции Avg, BigCount, Count, Max, Min, StDev, StDevP, Sum, Var, VarP
Математические функции Пресс, Потолок, Пол, Мощность, Круглый, Усечь
Строковые функции Concat, Содержит, EndsWith, IndexOf, Влево, Длина, LTrim, Заменить, Обратный, Вправо, RTrim, Подстрока, StartsWith, ToLower, ToUpper, Trim
Функции даты и времени AddMicroсекунды, AddMilliсекунды, AddSeconds, AddMinutes, AddHours, AddNano Seconds, AddDays, AddYears, CreateDateTime, AddMonths, CreateDateTimeOffset, CreateTime, CurrentDateTime, CurrentDateTimeOffset, CurrentUtcDateTime, Day, DayOfYear, DiffNanoсекунды, DiffMilliсекунды, DiffMicroсекунды, DiffSeconds, нуты, DiffHours, DiffDays, DiffMonths, DiffYears, GetTotalOffsetMinutes, час, миллисекунда, минута, месяц, секунда, TruncateTime, год
Побитовые функции BitWiseAnd, BitWiseNot, BitWiseOr, BitWiseXor
Другие функции НовыйГид

LINQ для сущностей

[ редактировать ]

Поставщик LINQ to Entities позволяет LINQ использовать для запроса различных источников данных РСУБД . Доступно несколько поставщиков серверов баз данных с поддержкой Entity Framework. [ нужна ссылка ]

Собственный SQL

[ редактировать ]

В Entity Framework v4 новые методы ExecuteStoreQuery() и ExecuteStoreCommand() . в класс ObjectContext были добавлены [ нужна ссылка ]

Визуализаторы

[ редактировать ]

В Visual Studio есть функция Visualizer. Запрос LINQ, написанный в Visual Studio, можно просмотреть как собственный SQL с помощью визуализатора во время сеанса отладки. Визуализатор для LINQ to Entities (объектный запрос), предназначенный для всех СУБД, доступен в Visual Studio Marketplace. [41]

Профилирование производительности

[ редактировать ]

Коммерчески доступны различные профилировщики для устранения проблем с производительностью с помощью Entity Framework как для вариантов EF, так и для EF Core.

Инструменты и расширения — Entity Framework Core

[ редактировать ]

Доступны инструменты и расширения Entity Framework Core для повышения производительности Entity Framework Core. [42]

Инструменты и расширения — Entity Framework EF6

[ редактировать ]

Доступны инструменты и расширения Entity Framework для повышения производительности Entity Framework. [43]

См. также

[ редактировать ]
  1. ^ «Релизы · dotnet/efcore · GitHub» . Гитхаб .
  2. ^ Криль, Пол (20 июля 2012 г.). «Entity Framework с открытым исходным кодом Microsoft» . Инфомир . Проверено 24 июля 2012 г.
  3. ^ айцвикерс (9 марта 2022 г.). «Политики поддержки Entity Framework» . Learn.microsoft.com . Проверено 12 декабря 2022 г.
  4. ^ айцвикерс. «Сравнить EF6 и EF Core» . Learn.microsoft.com . Проверено 12 декабря 2022 г.
  5. ^ айцвикерс (14 ноября 2023 г.). «Что нового в EF Core 8» . Learn.microsoft.com . Проверено 14 ноября 2023 г.
  6. ^ «Объектно-реляционное несоответствие импеданса» . AgileData.org . Проверено 12 декабря 2022 г.
  7. ^ Макбланк (15 сентября 2021 г.). «Обзор Entity Framework — ADO.NET» . Learn.microsoft.com . Проверено 12 декабря 2022 г.
  8. ^ «Entity Framework вотум недоверия подписавшим сторонам | Wufoo» . efvote.wufoo.com . Проверено 12 декабря 2022 г.
  9. ^ «Обновление Entity Framework в .NET 4 и Visual Studio 2010» . Блог команды ADO.NET. 11 мая 2009. Архивировано из оригинала 20 января 2010 года . Проверено 1 ноября 2011 г.
  10. ^ «EF4.3.1 и EF5 Beta 1 доступны на NuGet» . Блог команды ADO.NET. 29 февраля 2012. Архивировано из оригинала 25 марта 2012 года . Проверено 27 марта 2012 г.
  11. ^ «EF5 доступен на CodePlex» . 11 августа 2012. Архивировано из оригинала 7 сентября 2017 года . Проверено 20 марта 2014 г.
  12. ^ «Доступна EF6 RTM» . 17 октября 2013 г. Архивировано из оригинала 30 марта 2014 г.
  13. ^ «Entity Framework — Главная страница» . Гитхаб . 14 сентября 2016 г.
  14. ^ айцвикерс (14 октября 2020 г.). «Что нового — EF6» . Learn.microsoft.com . Проверено 12 декабря 2022 г.
  15. ^ Перейти обратно: а б «EF7 — Новые платформы, новые хранилища данных» . 19 мая 2014 г. Архивировано из оригинала 29 сентября 2015 г.
  16. ^ «Доступна Entity Framework Core 1.0.0» . 27 июня 2016 г.
  17. ^ Генсельман, Скотт. «ASP.NET 5 мертв. Представляем ASP.NET Core 1.0 и .NET Core 1.0 — Скотт Хансельман» . www.hanselman.com . Проверено 11 июля 2016 г.
  18. ^ «Анонс .NET Core 2.0» . .NET-блог. 14 августа 2017 г.
  19. ^ «Анонс .NET Core 3.0» . .NET-блог. 23 сентября 2019 г.
  20. ^ Перейти обратно: а б айцвикерс. «План для Entity Framework Core 5.0» . Learn.microsoft.com . Проверено 12 декабря 2022 г.
  21. ^ Перейти обратно: а б «Microsoft.EntityFrameworkCore 5.0.0» . nuget.org . Проверено 12 декабря 2022 г.
  22. ^ «Основные выпуски и планирование Entity Framework» . Декабрь 2023.
  23. ^ айцвикерс. «План для Entity Framework Core 6.0» . Learn.microsoft.com . Проверено 12 декабря 2022 г.
  24. ^ «Microsoft.EntityFrameworkCore 6.0.0» . nuget.org . Проверено 12 декабря 2022 г.
  25. ^ айцвикерс. «Выпуски и планирование EF Core» . Learn.microsoft.com . Проверено 12 декабря 2022 г.
  26. ^ Рот, Дэниел (08 ноября 2022 г.). «Анонс ASP.NET Core в .NET 7» . .NET-блог . Проверено 12 декабря 2022 г.
  27. ^ айцвикерс. «Что нового в EF Core 7.0» . Learn.microsoft.com . Проверено 12 декабря 2022 г.
  28. ^ Артур, Викерс (14 ноября 2023 г.). «Entity Framework Core 8 (EF8) доступен сегодня» . .NET-блог . Проверено 14 ноября 2023 г.
  29. ^ айцвикерс (14 ноября 2023 г.). «Что нового в EF Core 8» . Learn.microsoft.com . Проверено 14 ноября 2023 г.
  30. ^ «Модель данных объекта» . MSDN, Майкрософт. 2 августа 2012 года . Проверено 15 августа 2013 г.
  31. ^ Спецификации CSDL, SSDL и MSL , MSDN , заархивировано из оригинала 8 ноября 2010 г. , получено 6 декабря 2010 г.
  32. ^ айцвиккерс (09 марта 2022 г.). «Портирование с EF6 на EF Core — перенос модели на основе EDMX — EF» . Learn.microsoft.com . Проверено 7 июня 2024 г.
  33. ^ Мастер модели Entity Data Model , MSDN , получено 6 декабря 2010 г.
  34. ^ Kogent Solutions Inc. (2009), Черная книга ASP.NET 3.5 , Dreamtech Press, ISBN  978-81-7722-831-1
  35. ^ Перейти обратно: а б Простые типы (EDM) , MSDN , получено 6 декабря 2010 г.
  36. ^ Элемент ComplexType (CSDL) , MSDN , получено 6 декабря 2010 г.
  37. ^ Типы концептуальных моделей , MSDN , получено 6 декабря 2010 г.
  38. ^ OnDelete Element (CSDL) , MSDN , получено 6 декабря 2010 г.
  39. ^ Фасеты (CSDL) , MSDN , получено 6 декабря 2010 г.
  40. ^ Перейти обратно: а б Канонические функции (Entity SQL) , MSDN , получено 29 марта 2010 г.
  41. ^ «Визуализатор запросов Linq to Entity — Visual Studio Marketplace» . marketplace.visualstudio.com . Проверено 12 декабря 2022 г.
  42. ^ ЭрикЭДЖ. «Инструменты и расширения — EF Core» . Learn.microsoft.com . Проверено 12 декабря 2022 г.
  43. ^ айцвикерс (9 марта 2022 г.). «Инструменты и расширения — EF6» . Learn.microsoft.com . Проверено 12 декабря 2022 г.

Библиография

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6e90344d6b41b84abf4c8a27f9d69aa0__1718496180
URL1:https://arc.ask3.ru/arc/aa/6e/a0/6e90344d6b41b84abf4c8a27f9d69aa0.html
Заголовок, (Title) документа по адресу, URL1:
Entity Framework - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)