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


DbSet Класс

Определение

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

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="Name is intentional")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", Justification="Casing is intentional")]
public abstract class DbSet : System.Data.Entity.Infrastructure.DbQuery
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1010:CollectionsShouldImplementGenericInterface")]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix", Justification="Name is intentional")]
public abstract class DbSet : System.Data.Entity.Infrastructure.DbQuery
type DbSet = class
    inherit DbQuery
Public MustInherit Class DbSet
Inherits DbQuery
Наследование
DbSet
Атрибуты

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

DbSet()

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

Свойства

ElementType

Тип элемента IQueryable.

(Унаследовано от DbQuery)
Local

Возвращает объект , ObservableCollection<T> представляющий локальное представление всех добавленных, без изменений и измененных сущностей в этом наборе. Это локальное представление остается синхронизированным по мере добавления или удаления сущностей из контекста. Аналогичным образом добавляемые или удаляемые из этого локального представления сущности автоматически добавляются в контекст или удаляются из контекста.

Sql

String Возвращает представление базового запроса.

(Унаследовано от DbQuery)

Методы

Add(Object)

Добавляет заданную сущность к контексту, поддерживающему набор, в добавленном состоянии, в результате чего она будет вставлена в базу данных при вызове метода SaveChanges.

AddRange(IEnumerable)

Добавляет указанную коллекцию сущностей в контекст, лежащий в основе набора, при этом каждая сущность помещается в состояние Added таким образом, что она будет вставлена в базу данных при вызове Метода SaveChanges.

AsNoTracking()

Возвращает новый запрос, в котором возвращенные сущности не будут кэшироваться в .DbContext

(Унаследовано от DbQuery)
AsStreaming()
Устаревшие..

Возвращает новый запрос, который будет выполнять потоковую передачу результатов вместо буферизации.

(Унаследовано от DbQuery)
Attach(Object)

Присоединяет заданную сущность к контексту, поддерживающему данный набор. Это означает, что сущность помещается в контекст в неизмененном состоянии, как если бы она была считана из базы данных.

Cast<TEntity>()

Возвращает эквивалентный универсальный DbSet<TEntity> объект.

Create()

Создает новый экземпляр сущности для типа данного набора. Обратите внимание, что этот экземпляр НЕ добавляется или не присоединяется к набору. Возвращаемый экземпляр будет учетной записью-посредником, если базовый контекст настроен для создания посредников, а тип сущности удовлетворяет требованиям для создания учетных записей-посредников.

Create(Type)

Создает новый экземпляр сущности для типа данного набора или для типа, производного от типа данного набора. Обратите внимание, что этот экземпляр НЕ добавляется или не присоединяется к набору. Возвращаемый экземпляр будет учетной записью-посредником, если базовый контекст настроен для создания посредников, а тип сущности удовлетворяет требованиям для создания учетных записей-посредников.

Equals(Object)

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

Find(Object[])

Обнаруживает сущность с указанными значениями первичного ключа. Если сущность с указанными значениями первичного ключа содержится в контексте, она возвращается немедленно без выполнения запроса к хранилищу. В противном случае выполняется запрос к хранилищу в поисках сущности с указанными значениями первичного ключа. Если такая сущность обнаружена, она добавляется к контексту и возвращается вызывающей стороне. Если сущность не обнаружена в контексте или в хранилище, возвращается значение NULL.

FindAsync(CancellationToken, Object[])

Асинхронно находит сущность с заданными значениями первичного ключа. Если сущность с указанными значениями первичного ключа содержится в контексте, она возвращается немедленно без выполнения запроса к хранилищу. В противном случае выполняется запрос к хранилищу в поисках сущности с указанными значениями первичного ключа. Если такая сущность обнаружена, она добавляется к контексту и возвращается вызывающей стороне. Если сущность не обнаружена в контексте или в хранилище, возвращается значение NULL.

FindAsync(Object[])

Асинхронно находит сущность с заданными значениями первичного ключа. Если сущность с указанными значениями первичного ключа содержится в контексте, она возвращается немедленно без выполнения запроса к хранилищу. В противном случае выполняется запрос к хранилищу в поисках сущности с указанными значениями первичного ключа. Если такая сущность обнаружена, она добавляется к контексту и возвращается вызывающей стороне. Если сущность не обнаружена в контексте или в хранилище, возвращается значение NULL.

GetHashCode()

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

GetType()

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

Include(String)

Задает связанные объекты, включаемые в результаты запроса.

(Унаследовано от DbQuery)
Remove(Object)

Помечает заданную сущность как удаленную, в результате чего она будет удалена из базы данных при вызове метода SaveChanges. Обратите внимание, что перед вызовом этого метода сущность должна существовать в контексте в каком-либо другом состоянии.

RemoveRange(IEnumerable)

Удаляет указанную коллекцию сущностей из контекста, лежащего в основе набора, при этом каждая сущность помещается в состояние Deleted таким образом, что она будет удалена из базы данных при вызове Метода SaveChanges.

SqlQuery(String, Object[])

Создает необработанный SQL-запрос, возвращающий сущности в данном наборе. По умолчанию возвращаемые сущности отслеживаются контекстом; Это можно изменить, вызвав AsNoTracking в возвращаемом объекте DbRawSqlQuery . Обратите внимание, что возвращаемые сущности всегда относятся к типу для этого набора и никогда не имеют производного типа. Если запрашиваемая таблица или таблицы могут содержать данные других типов сущностей, SQL-запрос должен быть написан соответствующим образом, обеспечивая возврат только сущностей нужного типа.

Как и в случае с любым API, который принимает SQL, важно параметризовать любые входные данные пользователя для защиты от атак путем внедрения кода SQL. Вы можете включить заполнители параметров в строку ЗАПРОСА SQL, а затем указать значения параметров в качестве дополнительных аргументов. Все значения параметров, которые вы указали, будут автоматически преобразованы в DbParameter. Контексте. Set(typeof(Blog)). SqlQuery("SELECT * FROM dbo. Posts WHERE Author = @p0", userSuppliedAuthor); Кроме того, можно создать DbParameter и передать его в SqlQuery. Это позволяет использовать именованные параметры в строке SQL-запроса. Контексте. Set(typeof(Blog)). SqlQuery("SELECT * FROM dbo. Публикует where Author = @author", new SqlParameter("@author", userSuppliedAuthor));

ToString()

Возвращает представление String базового запроса.

(Унаследовано от DbQuery)

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

IDbAsyncEnumerable.GetAsyncEnumerator()

Возвращает объект , IDbAsyncEnumerator который при перечислении будет выполнять запрос к базе данных.

(Унаследовано от DbQuery)
IEnumerable.GetEnumerator()

Возвращает объект , IEnumerator который при перечислении будет выполнять запрос к базе данных.

(Унаследовано от DbQuery)
IListSource.ContainsListCollection

Возвращает false.

(Унаследовано от DbQuery)
IListSource.GetList()

Вызывает исключение, указывающее, что прямая привязка к запросу к хранилищу не поддерживается. Вместо этого заполните dbSet данными, например с помощью метода расширения Load, а затем привяжите его к локальным данным. Для WPF привязать к DbSet.Local. Для Windows Forms выполняйте привязку к DbSet.Local.ToBindingList().

(Унаследовано от DbQuery)
IQueryable.Expression

LINQ-выражение IQueryable.

(Унаследовано от DbQuery)
IQueryable.Provider

Поставщик IQueryable.

(Унаследовано от DbQuery)

Применяется к