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


DbSet - класс

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

Неуниверсальная версия DbSet<TEntity>, которая может использоваться, если тип сущности во время сборки неизвестен.

Иерархия наследования

System.Object
  System.Data.Entity.Infrastructure.DbQuery
    System.Data.Entity.DbSet

Пространство имен:  System.Data.Entity
Сборка:  EntityFramework (в EntityFramework.dll)

Синтаксис

'Декларация
<SuppressMessageAttribute("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification := "Name is intentional")> _
<SuppressMessageAttribute("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")> _
Public MustInherit Class DbSet _
    Inherits DbQuery
'Применение
Dim instance As DbSet
[SuppressMessageAttribute("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "Name is intentional")]
[SuppressMessageAttribute("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")]
public abstract class DbSet : DbQuery
[SuppressMessageAttribute(L"Microsoft.Naming", L"CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = L"Name is intentional")]
[SuppressMessageAttribute(L"Microsoft.Design", L"CA1010:CollectionsShouldImplementGenericInterface")]
public ref class DbSet abstract : public DbQuery
[<AbstractClassAttribute>]
[<SuppressMessageAttribute("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification = "Name is intentional")>]
[<SuppressMessageAttribute("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")>]
type DbSet =  
    class 
        inherit DbQuery 
    end
public abstract class DbSet extends DbQuery

Тип DbSet предоставляет следующие члены.

Конструкторы

  Имя Описание
Защищенный метод DbSet Создает экземпляр DbSet при вызове из конструктора производного типа, который будет использоваться как тестовый дубль для DbSet.Методы и свойства, используемые в тестовом дубле, должны быть реализованы в нем же за исключением AsNoTracking, AsStreaming и Include, которые в реализации по умолчанию являются пустыми операциями.

По верхнему краю

Свойства

  Имя Описание
Открытое свойство ElementType Тип элемента IQueryable. (Унаследовано от DbQuery.)
Открытое свойство Local Возвращает объект ObservableCollection<T>, содержащий локальное представление всех добавленных, неизменившихся и измененных сущностей в наборе.Это локальное представление остается синхронизированным по мере добавления или удаления сущностей из контекста.Аналогичным образом добавляемые или удаляемые из этого локального представления сущности автоматически добавляются в контекст или удаляются из контекста.

По верхнему краю

Методы

  Имя Описание
Открытый метод Add Добавляет заданную сущность к контексту, поддерживающему набор, в добавленном состоянии, в результате чего она будет вставлена в базу данных при вызове метода SaveChanges.
Открытый метод AddRange Добавляет заданную коллекцию сущностей к контексту, поддерживающему набор, каждая сущность которого находится в состоянии "Добавлено", в результате чего она будет вставлена в базу данных при вызове метода SaveChanges.
Открытый метод AsNoTracking Возвращает новый запрос, в котором возвращаемые сущности не кэшируются в DbContext. (Унаследовано от DbQuery.)
Открытый метод AsStreaming Устаревшее. Возвращает новый запрос, который обеспечивает потоковую обработку результатов вместо буферизации. (Унаследовано от DbQuery.)
Открытый метод Attach Присоединяет заданную сущность к контексту, поддерживающему данный набор.Это означает, что сущность помещается в контекст в неизмененном состоянии, как если бы она была считана из базы данных.
Открытый метод Cast<TEntity> Возвращает эквивалентный универсальный объект DbSet<TEntity>.
Открытый метод Create() Создает новый экземпляр сущности для типа данного набора.Обратите внимание, что этот экземпляр НЕ добавляется в набор.Возвращаемый экземпляр будет учетной записью-посредником, если базовый контекст настроен для создания посредников, а тип сущности удовлетворяет требованиям для создания учетных записей-посредников.
Открытый метод Create(Type) Создает новый экземпляр сущности для типа данного набора или для типа, производного от типа данного набора.Обратите внимание, что этот экземпляр НЕ добавляется в набор.Возвращаемый экземпляр будет учетной записью-посредником, если базовый контекст настроен для создания посредников, а тип сущности удовлетворяет требованиям для создания учетных записей-посредников.
Открытый метод Equals Возвращает значение, указывающее, равен ли указанный набор текущему набору. (Переопределяет DbQuery.Equals(Object).)
Защищенный метод Finalize (Унаследовано от Object.)
Открытый метод Find Обнаруживает сущность с указанными значениями первичного ключа.Если сущность с указанными значениями первичного ключа содержится в контексте, она возвращается немедленно без выполнения запроса к хранилищу.В противном случае выполняется запрос к хранилищу в поисках сущности с указанными значениями первичного ключа. Если такая сущность обнаружена, она добавляется к контексту и возвращается вызывающей стороне.Если сущность не обнаружена в контексте или в хранилище, возвращается значение NULL.
Открытый метод FindAsync(Object[]) Асинхронно находит сущность с указанными значениями первичного ключа.Если сущность с указанными значениями первичного ключа содержится в контексте, она возвращается немедленно без выполнения запроса к хранилищу.В противном случае выполняется запрос к хранилищу в поисках сущности с указанными значениями первичного ключа. Если такая сущность обнаружена, она добавляется к контексту и возвращается вызывающей стороне.Если сущность не обнаружена в контексте или в хранилище, возвращается значение NULL.
Открытый метод FindAsync(CancellationToken, Object[]) Асинхронно находит сущность с указанными значениями первичного ключа.Если сущность с указанными значениями первичного ключа содержится в контексте, она возвращается немедленно без выполнения запроса к хранилищу.В противном случае выполняется запрос к хранилищу в поисках сущности с указанными значениями первичного ключа. Если такая сущность обнаружена, она добавляется к контексту и возвращается вызывающей стороне.Если сущность не обнаружена в контексте или в хранилище, возвращается значение NULL.
Открытый метод GetHashCode Возвращает хэш-функцию для указанного набора. (Переопределяет DbQuery.GetHashCode().)
Открытый метод GetType Возвращает тип текущего набора.
Открытый метод Include Задает связанные объекты, включаемые в результаты запроса. (Унаследовано от DbQuery.)
Защищенный метод MemberwiseClone (Унаследовано от Object.)
Открытый метод Remove Помечает заданную сущность как удаленную, в результате чего она будет удалена из базы данных при вызове метода SaveChanges.Обратите внимание, что перед вызовом этого метода сущность должна существовать в контексте в каком-либо другом состоянии.
Открытый метод RemoveRange Удаляет заданную коллекцию сущностей из контекста, поддерживающего набор, каждая сущность которого находится в состоянии "Удалено", в результате чего она будет удалена из базы данных при вызове метода SaveChanges.
Открытый метод SqlQuery Создает необработанный SQL-запрос, возвращающий сущности в данном наборе.По умолчанию возвращаемые сущности отслеживаются контекстом. Это поведение можно изменить, вызвав метод AsNoTracking для возвращаемого объекта DbRawSqlQuery.Обратите внимание, что сущности всегда имеют тип, заданный для набора, и никогда не имеют производный тип.Если запрашиваемая таблица или таблицы могут содержать данные других типов сущностей, SQL-запрос должен быть написан соответствующим образом, обеспечивая возврат только сущностей нужного типа.Как и для любого API, принимающего SQL, важно параметризовать все пользовательские входные данные для защиты от атаки путем внедрения кода SQL.Можно включать в строку SQL-запроса местозаполнители параметров и затем предоставлять значения параметров как дополнительные аргументы.Все предоставляемые значения параметров будут автоматически преобразовываться в DbParameter.context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @p0", userSuppliedAuthor); также можно создать DbParameter и предоставить его в SqlQuery.Это позволяет использовать в строке запроса SQL именованные параметры.context.Set(typeof(Blog)).SqlQuery("SELECT * FROM dbo.Posts WHERE Author = @author", new SqlParameter("@author", userSuppliedAuthor));
Открытый метод ToString Возвращает представление String базового запроса. (Унаследовано от DbQuery.)

По верхнему краю

Явные реализации интерфейса

  Имя Описание
Явная реализация интерфейсаЗакрытое свойство IListSource.ContainsListCollection Возвращает значение типа false. (Унаследовано от DbQuery.)
Явная реализация интерфейсаЗакрытое свойство IQueryable.Expression LINQ-выражение IQueryable. (Унаследовано от DbQuery.)
Явная реализация интерфейсаЗакрытый метод IEnumerable.GetEnumerator Возвращает объект IEnumerator, который при перечислении выполняет заданный запрос по отношению к базе данных. (Унаследовано от DbQuery.)
Явная реализация интерфейсаЗакрытый метод IListSource.GetList Вызывает исключение, указывающее, что прямая привязка к запросу к хранилищу не поддерживается.Вместо этого заполните DbSet данными, например, с использованием метода расширения Load, а затем выполните привязку к локальным данным.Применительно к привязке WPF к DbSet.Local.Применительно к формам Windows Forms, связанным с DbSet.Local.ToBindingList(). (Унаследовано от DbQuery.)
Явная реализация интерфейсаЗакрытое свойство IQueryable.Provider Поставщик IQueryable. (Унаследовано от DbQuery.)
Явная реализация интерфейсаЗакрытый метод IDbAsyncEnumerable.GetAsyncEnumerator Возвращает объект IDbAsyncEnumerator, который при перечислении выполняет заданный запрос по отношению к базе данных. (Унаследовано от DbQuery.)

По верхнему краю

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасная работа с членами экземпляров типа не гарантируется.

См. также

Справочник

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