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


System.Data.Entity.Infrastructure - пространство имен

[Эта страница относится к документации к Entity Framework 6. Последняя версия доступна в составе пакета Entity Framework NuGet. Дополнительные сведения об Entity Framework см. в разделе msdn.com/data/ef.]

Пространство имен System.Data.Entity.Infrastructure содержит классы, которые поддерживают базовую функциональность платформы Entity Framework.

Классы

  Класс Описание
Открытый класс CommitFailedException Исключение, вызываемое при ошибке фиксации DbTransaction.
Открытый класс CommitFailureHandler Представляет обработчик транзакций, который позволяет правильно восстановиться после сбоя подключения во время фиксации транзакции, сохраняя сведения трассировки транзакции в базу данных.Должен быть зарегистрирован с помощью SetDefaultTransactionHandler(Func<TransactionHandler>).
Открытый класс DbChangeTracker Возвращается методом ChangeTracker объекта DbContext в целях предоставления доступа к функциям контекста, которые связаны с отслеживанием изменений сущностей.
Открытый класс DbCollectionEntry Представляет неуниверсальную версию класса DbCollectionEntry<TEntity, TElement>.
Открытый класс DbCollectionEntry<TEntity, TElement> Экземпляры этого класса возвращены из метода Collection объекта DbEntityEntry<TEntity> и позволяют выполнять по отношению к свойствам навигации коллекции сущности такие операции, как загрузка.
Открытый класс DbCompiledModel Неизменяемое представление модели EDM, которое может использоваться для создания ObjectContext или передаваться конструктору DbContext.Для повышения производительности экземпляры этого типа должны кэшироваться и повторно использоваться при создании контекстов.
Открытый класс DbComplexPropertyEntry Неуниверсальная версия класса DbComplexPropertyEntry<TEntity, TComplexProperty>.
Открытый класс DbComplexPropertyEntry<TEntity, TComplexProperty> Экземпляры данного класса возвращаются методом ComplexProperty объекта DbEntityEntry<TEntity> и позволяют обращаться к состоянию сложного свойства.
Открытый класс DbConnectionInfo Представляет сведения о подключении базы данных.
Открытый класс DbContextConfiguration Возвращается методом Configuration объекта DbContext в целях предоставления доступа к параметрам конфигурации для контекста.
Открытый класс DbContextInfo Содержит сведения о среде выполнения для данного типа DbContext.
Открытый класс DbEntityEntry Неуниверсальная версия класса DbEntityEntry<TEntity>.
Открытый класс DbEntityEntry<TEntity> Экземпляры данного класса предоставляют доступ к сведениям о сущностях, отслеживаемых классом DbContext, и возможность управления этими сущностями.Используйте методы Entity или Entities контекста для получения объектов этого типа.
Открытый класс DbExecutionStrategy Предоставляет базовую реализацию механизма повторения для ненадежных операций и временных состояний, в которой используются экспоненциально возрастающие задержки между повторными попытками.
Открытый класс DbMemberEntry Это абстрактный базовый класс, используемый для представления скалярного или сложного свойства либо свойства навигации у сущности.Скалярные и сложные свойства используют производный класс DbPropertyEntry, свойства навигации по ссылке используют производный класс DbReferenceEntry, а свойства навигации по коллекции используют производный класс DbCollectionEntry.
Открытый класс DbMemberEntry<TEntity, TProperty> Это абстрактный базовый класс, используемый для представления скалярного или сложного свойства либо свойства навигации у сущности.Скалярные и сложные свойства используют производный класс DbPropertyEntry<TEntity, TProperty>, свойства навигации по ссылке используют производный класс DbReferenceEntry<TEntity, TProperty>, а свойства навигации по коллекции используют производный класс DbCollectionEntry<TEntity, TElement>.
Открытый класс DbModel Представляет модель EDM, созданную в DbModelBuilder.Метод Compile может использоваться для перехода от этого представления модели EDM к DbCompiledModel, что является скомпилированным моментальным снимком модели, подходящей для кэширования и создания экземпляра DbContext или ObjectContext.
Открытый класс DbPropertyEntry Неуниверсальная версия класса DbPropertyEntry<TEntity, TProperty>.
Открытый класс DbPropertyEntry<TEntity, TProperty> Экземпляры данного класса возвращаются методом Property объекта DbEntityEntry<TEntity> и позволяют обращаться к состоянию скалярного или сложного свойства.
Открытый класс DbPropertyValues Коллекция всех свойств базовой сущности или сложного объекта.
Открытый класс DbProviderInfo Группирует в один объект пару строк, идентифицирующих поставщика и версию сервера.
Открытый класс DbQuery Представляет неуниверсальный запрос LINQ to Entities к контексту DbContext.
Открытый класс DbQuery<TResult> Представляет запрос LINQ to Entities к контексту DbContext.
Открытый класс DbRawSqlQuery Представляет SQL-запрос для объектов, отличных от сущностей, который создан из DbContext и выполняется с использованием соединения из этого контекста.Экземпляры этого класса получены из экземпляра Database.Запрос не выполняется при создании этого объекта. Он выполняется при каждом перечислении объекта, например при выполнении инструкции foreach.SQL-запросы к сущностям создаются с использованием SqlQuery(String, Object[]).См. DbRawSqlQuery<TElement> для ознакомления с универсальной версией этого класса.
Открытый класс DbRawSqlQuery<TElement> Представляет SQL-запрос для объектов, отличных от сущностей, который создан из DbContext и выполняется с использованием соединения из этого контекста.Экземпляры этого класса получены из экземпляра Database.Запрос не выполняется при создании этого объекта; выполнение происходит при каждом его перечислении, например, с использованием foreach.SQL-запросы к сущностям создаются с использованием SqlQuery(String, Object[]).См. DbRawSqlQuery для ознакомления с неуниверсальной версией этого класса.
Открытый класс DbReferenceEntry Неуниверсальная версия класса DbReferenceEntry<TEntity, TProperty>.
Открытый класс DbReferenceEntry<TEntity, TProperty> Экземпляры этого класса возвращены из метода Reference объекта DbEntityEntry<TEntity> и позволяют выполнять по отношению к свойствам навигации ссылки сущности такие операции, как загрузка.
Открытый класс DbSqlQuery Представляет SQL-запрос для сущностей, который создан из объекта DbContext и выполняется с использованием соединения из этого контекста.Экземпляры этого класса получены из экземпляра DbSet для типа сущности.Запрос не выполняется при создании этого объекта. Он выполняется при каждом перечислении объекта, например при выполнении инструкции foreach.SQL-запросы к объектам, отличным от сущностей, создаются с использованием SqlQuery(Type, String, Object[]).См. DbSqlQuery<TEntity> для ознакомления с универсальной версией этого класса.
Открытый класс DbSqlQuery<TEntity> Представляет SQL-запрос для сущностей, который создан из объекта DbContext и выполняется с использованием соединения из этого контекста.Экземпляры этого класса получены из экземпляра DbSet<TEntity> для типа сущности.Запрос не выполняется при создании этого объекта. Он выполняется при каждом перечислении объекта, например при выполнении инструкции foreach.SQL-запросы к объектам, отличным от сущностей, создаются с использованием SqlQuery<TElement>(String, Object[]).См. DbSqlQuery для ознакомления с неуниверсальной версией этого класса.
Открытый класс DbUpdateConcurrencyException Исключение, активированное в DbContext, если ожидалось, что применение метода SaveChanges к сущности приведет к обновлению базы данных, но фактически ни одна строка в базе данных не была затронута.Это обычно указывает, что база данных обновлена в параллельном режиме, поэтому токен параллелизма, который в соответствии с ожиданиями должен быть согласованным, фактически не согласован.Следует учитывать, что записи состояния, на которые ссылается это исключение, не сериализованы по соображениям безопасности и получают доступ к записям состояния после того, как сериализация возвращает значение NULL.
Открытый класс DbUpdateException При неудачной попытке записи изменений в базу данных в DbContext создается исключение.Следует учитывать, что записи состояния, на которые ссылается это исключение, не сериализованы по соображениям безопасности и получают доступ к записям состояния после того, как сериализация возвращает значение NULL.
Открытый класс DefaultExecutionStrategy Представляет метод IDbExecutionStrategy по умолчанию, который не выполняет операции повторно, если они завершаются неудачей.
Открытый класс DefaultManifestTokenResolver Представляет предусмотренную по умолчанию реализацию IManifestTokenResolver, в которой используется базовый поставщик для возврата токена манифеста.Чтобы избежать нескольких запросов, эта реализация использует кэширование на основе фактического типа экземпляра DbConnection, свойства DataSource и свойства Database.
Открытый класс EdmMetadata Устаревшее. Представляет сущность, используемую для хранения метаданных о модели EDM в базе данных.
Открытый класс EdmxWriter Содержит методы, используемые для доступа к модели EDM, созданной механизмом Code First в форме EDMX.Эти методы обычно используются для отладки, если необходимо рассмотреть модель, созданную внутренне механизмом Code First.
Открытый класс ExecutionStrategyKey Ключ, используемый для разрешения Func<TResult>.Состоит из неизменяемого имени поставщика ADO.NET и имени сервера базы данных, как указано в строке подключения.
Открытый класс IncludeMetadataConvention Устаревшее. Это соглашение DbModelBuilder вынуждает построитель DbModelBuilder включать метаданные о модели при сборке им модели.При создании в DbContext модели в соответствии с соглашением происходит добавление этого соглашения к списку используемых в DbModelBuilder.Это затем приводит к записи метаданных модели в базу данных, если для создания базы данных используется DbContext.Затем это можно использовать в качестве быстрой проверки для определения того, изменилась ли модель после ее последнего использования по отношению к базе данных.Это соглашение может быть удалено из соглашений DbModelBuilder путем переопределения метода OnModelCreating в производном классе DbContext.
Открытый класс LocalDbConnectionFactory Экземпляры этого класса используются в целях создания объектов DbConnection для SQL Server LocalDb на основе заданного имени базы данных или строки подключения.
Открытый класс ModelContainerConvention В этом соглашении DbModelBuilder используется имя производного класса DbContext в качестве контейнера для концептуальной модели, построенной в режиме Code First.
Открытый класс ModelNamespaceConvention В этом соглашении DbModelBuilder используется пространство имен производного класса DbContext в качестве пространства имен концептуальной модели, построенной в режиме Code First.
Открытый класс ObjectReferenceEqualityComparer Сравнивает объекты по равенству ссылок.
Открытый класс ReplacementDbQueryWrapper<TElement> Экземпляры этого класса используются внутренним образом в целях создания константных выражений для ObjectQuery<T>, которые вставлены в дерево выражения для замены ссылок на DbQuery<TResult> и DbQuery.
Открытый класс RetryLimitExceededException Исключение, которое вызвано после того, как действие снова окончилось неудачей вслед за повторными попытками, количество которых задано в конфигурации.
Открытый класс SqlCeConnectionFactory Экземпляры этого класса используются для создания объектов DbConnection для SQL Server Compact Edition на основе указанного имени базы данных или строки подключения.
Открытый класс SqlConnectionFactory Экземпляры этого класса используются для создания объектов DbConnection для SQL Server на основе указанного имени базы данных или строки подключения.По умолчанию используется соединение с «.\SQLEXPRESS».Это поведение можно изменить, заменив базовую строку подключения при конструировании экземпляра фабрики.
Открытый класс SuppressDbSetInitializationAttribute Этот атрибут может быть применен либо ко всему производному классу DbContext, либо к отдельным свойствам DbSet<TEntity> или IDbSet<TEntity> этого класса.При применении любых обнаруженных свойств DbSet<TEntity> или IDbSet<TEntity> все еще будет включено в модель, но не будет автоматически инициализировано.
Открытый класс TableExistenceChecker Реализуется поставщиками Entity Framework и используется для проверки существования таблиц в заданной базе данных.Используется инициализаторами базы данных для определения, считать ли существующую базу данных пустой и следует ли создать таблицы.
Открытый класс TransactionContext Этот класс используется CommitFailureHandler для записи и считывания сведений отслеживания транзакции из базы данных.Чтобы настроить определение таблицы транзакции, можно создать класс, производный от этого класса, и переопределить метод OnModelCreating(DbModelBuilder).Производные классы могут быть зарегистрированы с помощью DbConfiguration.
Открытый класс TransactionHandler Представляет базовый класс для перехватчиков, которые обрабатывают операции транзакции.Производные классы могут быть зарегистрированы с помощью SetDefaultTransactionHandler(Func<TransactionHandler>) или SetTransactionHandler(String, Func<TransactionHandler>, String).
Открытый класс TransactionRow Представляет транзакцию.
Открытый класс UnintentionalCodeFirstException Активируется, если контекст создается из шаблонов DbContext в режиме Database First или Model First, а затем используется в режиме Code First.

интерфейсов,

  Интерфейс Описание
Открытый интерфейс IDbAsyncEnumerable Асинхронная версия интерфейса IEnumerable, который обеспечивает асинхронную выборку элементов.Этот интерфейс используется для взаимодействия с запросами Entity Framework и не должен реализовываться пользовательскими классами.
Открытый интерфейс IDbAsyncEnumerable<T> Асинхронная версия интерфейса IEnumerable<T>, который позволяет осуществлять асинхронную выборку элементов перечислимой последовательности.Этот интерфейс используется для взаимодействия с запросами Entity Framework и не должен реализовываться пользовательскими классами.
Открытый интерфейс IDbAsyncEnumerator Асинхронная версия интерфейса IEnumerator, который обеспечивает асинхронную выборку элементов.Этот интерфейс используется для взаимодействия с запросами Entity Framework и не должен реализовываться пользовательскими классами.
Открытый интерфейс IDbAsyncEnumerator<T> Асинхронная версия интерфейса IEnumerator<T>, который обеспечивает асинхронную выборку элементов.Этот интерфейс используется для взаимодействия с запросами Entity Framework и не должен реализовываться пользовательскими классами.
Открытый интерфейс IDbAsyncQueryProvider Определяет методы для создания и выполнения в асинхронном режиме запросов, которые описаны объектом IQueryable.Этот интерфейс используется для взаимодействия с запросами Entity Framework и не должен реализовываться пользовательскими классами.
Открытый интерфейс IDbConnectionFactory Реализации этого интерфейса используются в целях создания объектов DbConnection для типа сервера базы данных на основе заданного имени базы данных.Применительно к классу Database задан экземпляр, который вынуждает использовать по умолчанию во всех контекстах DbContexts, созданных без информации о соединении или только с именем базы данных или строкой подключения, сервер базы данных определенного типа.Возможны два варианта реализации этого интерфейса: SqlConnectionFactory используется для создания соединений с версия Microsoft SQL Server, включая экспресс-выпуски.SqlCeConnectionFactory используется для создания соединений с версиями Microsoft SQL Server Compact Edition.При необходимости можно добавить другие реализации для других серверов баз данных.Следует учитывать, что реализации должны быть потокобезопасными или неизменяемыми, поскольку доступ к ним может осуществляться одновременно несколькими потоками.
Открытый интерфейс IDbContextFactory<TContext> Фабрика для создания производных экземпляров DbContext.Реализуйте этот интерфейс, чтобы включить службы времени разработки для контекстных типов, которые не имеют открытый конструктор, предусмотренный по умолчанию.При проектировании производные экземпляры DbContext можно создавать для включения поддержки конкретных операций времени разработки, таких как визуализация моделей, создание языка DDL и т. д.Для включения служб времени разработки для производных типов DbContext, у которых отсутствует открытый конструктор по умолчанию, реализуйте этот интерфейс.Службы времени разработки автоматически обнаруживают реализации этого интерфейса, которые находятся в той же сборке, что и производный тип DbContext.
Открытый интерфейс IDbExecutionStrategy Стратегия, используемая для выполнения команды или запроса к базе данных, возможно с логикой для повторов при возникновении сбоев.
Открытый интерфейс IDbModelCacheKey Представляет значение ключа, однозначно определяющее модель Entity Framework, загруженную в память.
Открытый интерфейс IDbModelCacheKeyProvider Реализуйте данный интерфейс в контексте, чтобы использовать собственную логику для расчета ключа, используемого при поиске в уже созданной модели в кэше.Данный интерфейс позволяет использовать единственный тип контекста с различными моделями в одном домене AppDomain или несколько типов контекстов с одинаковой моделью.
Открытый интерфейс IDbProviderFactoryResolver Служба, предназначенная для получения правильного значения DbProviderFactory из заданного объекта DbConnection.
Открытый интерфейс IManifestTokenResolver Служба, предназначенная для получения токена манифеста поставщика при наличии соединения.Класс DefaultManifestTokenResolver предусмотрен по умолчанию и в нем применяется основополагающий поставщик для получения токена, что часто требует открытия соединения.Вместо этого можно использовать другую реализацию, добавляя IDbDependencyResolver к DbConfiguration, где могут использоваться любые сведения из соединения для возврата токена.Например, если известно, что соединение указывает на базу данных SQL Server 2008, то можно получить «2008» без открытия соединения.
Открытый интерфейс IMetadataAnnotationSerializer Реализация этого интерфейса необходима для того, чтобы разрешить сериализацию в EDMX XML (и обратно) пользовательских заметок, представленных MetadataProperty.Обычно экземпляр класса-сериализатора задается с помощью метода SetMetadataAnnotationSerializer(String, Func<IMetadataAnnotationSerializer>).
Открытый интерфейс IObjectContextAdapter Интерфейс, реализованный объектами, которые могут предоставить экземпляр класса ObjectContext.Класс DbContext реализует этот интерфейс, чтобы предоставить доступ к базовому объекту ObjectContext.
Открытый интерфейс IProviderInvariantName Используется методами IDbDependencyResolver и DbConfiguration при разрешении неизменяемого имени поставщика из DbProviderFactory.

Перечисления

  Перечисление Описание
Открытое перечисление DbConnectionStringOrigin Описывает источник строки подключения базы данных, связанной с DbContext.