다음을 통해 공유


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()

DbSets에 DbSet 대한 테스트 double로 사용될 파생 형식의 생성자에서 호출될 때 의 instance 만듭니다. 테스트 double에서 사용할 메서드 및 속성은 기본 구현이 no-op인 Include인 AsNoTracking, AsStreaming을 제외한 테스트 double에서 구현해야 합니다.

속성

ElementType

IQueryable 요소 형식입니다.

(다음에서 상속됨 DbQuery)
Local

ObservableCollection<T> 이 집합에 있는 모든 추가, 변경되지 않음 및 수정된 엔터티의 로컬 보기를 나타내는 을 가져옵니다. 이 로컬 뷰는 엔터티가 컨텍스트에서 추가되거나 제거될 때 동기화 상태로 유지됩니다. 이와 마찬가지로 로컬 뷰에서 추가되거나 제거된 엔터티는 자동으로 컨텍스트에서 추가되거나 제거됩니다.

Sql

String 기본 쿼리의 표현을 가져옵니다.

(다음에서 상속됨 DbQuery)

메서드

Add(Object)

SaveChanges가 호출될 때 데이터베이스에 삽입되도록 집합의 기반이 되는 컨텍스트에 지정된 엔터티를 Added 상태로 추가합니다.

AddRange(IEnumerable)

SaveChanges가 호출될 때 데이터베이스에 삽입되도록 각 엔터티가 추가됨 상태로 설정된 기본 컨텍스트에 엔터티의 지정된 컬렉션을 추가합니다.

AsNoTracking()

반환된 엔터티가 에 캐시되지 않는 새 쿼리를 DbContext반환합니다.

(다음에서 상속됨 DbQuery)
AsStreaming()
사용되지 않음.

버퍼링 대신 결과를 스트리밍할 새 쿼리를 반환합니다.

(다음에서 상속됨 DbQuery)
Attach(Object)

집합의 기반이 되는 컨텍스트에 지정된 엔터티를 연결합니다. 즉, 엔터티가 마치 데이터베이스에서 읽은 것처럼 변경되지 않은 상태로 컨텍스트에 배치됩니다.

Cast<TEntity>()

해당하는 제네릭 DbSet<TEntity> 개체를 반환합니다.

Create()

이 집합의 형식에 대해 엔터티의 새 인스턴스를 만듭니다. 이 instance 집합에 추가되거나 연결되지 않습니다. 기본 컨텍스트가 프록시를 만들도록 구성되고 엔터티 형식이 프록시를 만들기 위한 요구 사항을 충족하는 경우 반환된 인스턴스는 프록시가 됩니다.

Create(Type)

이 집합의 형식 또는 이 집합의 형식에서 파생된 형식에 대한 엔터티의 새 인스턴스를 만듭니다. 이 instance 집합에 추가되거나 연결되지 않습니다. 기본 컨텍스트가 프록시를 만들도록 구성되고 엔터티 형식이 프록시를 만들기 위한 요구 사항을 충족하는 경우 반환된 인스턴스는 프록시가 됩니다.

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가 호출될 때 데이터베이스에서 삭제되도록 지정된 엔터티를 Deleted로 표시합니다. 이 메서드가 호출되기 전에 다른 상태의 엔터티가 컨텍스트에 있어야 합니다.

RemoveRange(IEnumerable)

SaveChanges가 호출될 때 데이터베이스에서 삭제되도록 각 엔터티가 Deleted 상태로 전환되는 집합의 기본 컨텍스트에서 지정된 엔터티 컬렉션을 제거합니다.

SqlQuery(String, Object[])

이 집합에 엔터티를 반환할 원시 SQL 쿼리를 만듭니다. 기본적으로 반환되는 엔터티는 컨텍스트에 의해 추적됩니다. 반환된 에서 AsNoTracking을 호출하여 DbRawSqlQuery 변경할 수 있습니다. 반환되는 엔터티는 항상 이 집합에 대한 형식이며 파생 형식이 없습니다. 쿼리된 테이블에 다른 엔터티 형식의 데이터가 포함될 수 있는 경우 SQL 쿼리는 올바른 형식의 엔터티만 반환되도록 적절하게 작성되어야 합니다.

SQL을 허용하는 모든 API와 마찬가지로 SQL 삽입 공격으로부터 보호하기 위해 사용자 입력을 매개 변수화하는 것이 중요합니다. SQL 쿼리 문자열에 매개 변수 자리 표시자를 포함하고 매개 변수 값을 추가 인수로 제공할 수 있습니다. 사용자가 제공하는 모든 매개 변수 값은 자동으로 DbParameter로 변환됩니다. 컨텍스트. Set(typeof(Blog)). SqlQuery("SELECT * FROM dbo. 게시물 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()

저장소 쿼리에 대한 직접 바인딩이 지원되지 않음을 나타내는 예외를 throw합니다. 대신 Load 확장 메서드를 사용하여 DbSet을 데이터로 채웁니다. 그런 다음 로컬 데이터에 바인딩합니다. WPF의 경우 DbSet.Local에 바인딩합니다. Windows Forms의 경우 DbSet.Local.ToBindingList()에 바인딩합니다.

(다음에서 상속됨 DbQuery)
IQueryable.Expression

IQueryable LINQ 식입니다.

(다음에서 상속됨 DbQuery)
IQueryable.Provider

IQueryable 공급자입니다.

(다음에서 상속됨 DbQuery)

적용 대상