Entity Framework용 EntityClient 공급자

EntityClient 공급자는 Entity Framework 애플리케이션에서 개념적 모델에 설명된 데이터에 액세스하는 데 사용하는 데이터 공급자입니다. 개념적 모델에 대한 자세한 내용은 모델링 및 매핑을 참조하세요. EntityClient는 다른 .NET Framework 데이터 공급자를 사용하여 데이터 소스에 액세스합니다. 예를 들어, EntityClient는 SQL Server 데이터베이스에 액세스할 때 .NET Framework Data Provider for SQL Server(SqlClient)를 사용합니다. SqlClient 공급자에 대한 내용은 Entity Framework용 SqlClient를 참조하세요. EntityClient 공급자는 System.Data.EntityClient 네임스페이스에 구현되어 있습니다.

연결 관리

Entity Framework는 기본 데이터 공급자 및 관계형 데이터베이스에 EntityConnection을 제공하여 스토리지별 ADO.NET 데이터 공급자를 기준으로 구축됩니다. EntityConnection 개체를 생성하려면 필수 모델과 매핑이 포함된 메타데이터 집합, 저장소별 데이터 공급자 이름, 연결 문자열 등을 참조해야 합니다. EntityConnection을 생성하고 나면, 개념적 모델을 기준으로 생성된 클래스를 통해 엔터티에 액세스할 수 있습니다.

app.config 파일에서 연결 문자열을 지정할 수 있습니다.

System.Data.EntityClientEntityConnectionStringBuilder 클래스도 포함합니다. 개발자는 이 클래스를 사용하여 프로그래밍 방식으로 올바른 구문의 연결 문자열을 만들고 이 클래스의 속성과 메서드를 사용하여 기존 연결 문자열의 구문을 분석한 다음 다시 빌드할 수 있습니다. 자세한 내용은 방법: EntityConnection 연결 문자열 빌드를 참조하세요.

쿼리 작성

Entity SQL 언어는 개념적 엔터티 스키마를 직접 사용하며 상속 및 관계와 같은 엔터티 데이터 모델 개념을 지원하는, 저장소에 독립적인 SQL 언어입니다. EntityCommand 클래스는 엔터티 모델에 대해 Entity SQL 명령을 실행하는 데 사용됩니다. EntityCommand 개체를 생성할 때는 저장 프로시저 이름이나 쿼리 텍스트를 지정할 수 있습니다. Entity Framework는 스토리지별 데이터 공급자와 함께 작업하여 일반 Entity SQL을 스토리지별 쿼리로 변환합니다. Entity SQL 쿼리 작성에 대한 자세한 내용은 Entity SQL 언어를 참조하세요.

다음 예제에서는 EntityCommand 개체를 만들고 Entity SQL 쿼리 텍스트를 해당 EntityCommand.CommandText 속성에 할당합니다. 이 Entity SQL 쿼리는 가격 기준으로 정렬된 개념적 모델 기반 제품을 요청합니다. 다음 코드에는 스토리지 모델에 대한 정보가 없습니다.

EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"SELECT VALUE p
 FROM AdventureWorksEntities.Product AS p
 ORDER BY p.ListPrice";

쿼리 실행

쿼리를 실행하면 쿼리에 대한 구문 분석이 수행되고 정식 명령 트리로 변환됩니다. 이후 모든 처리는 정식 명령 트리에서 수행됩니다. 명령 트리는 System.Data.EntityClient와 기본 .NET Framework 데이터 공급자(예: System.Data.SqlClient) 간의 통신 수단입니다.

EntityDataReader는 개념적 모델에 대한 EntityCommand 실행 결과를 노출합니다. EntityDataReader를 반환하는 명령을 실행하려면 ExecuteReader를 호출합니다. EntityDataReader는 결과를 다양한 구조로 보여 주는 IExtendedDataRecord를 구현합니다.

트랜잭션 관리

Entity Framework에서는 자동 및 명시적으로 트랜잭션을 사용할 수 있습니다. 자동 트랜잭션에서는 System.Transactions 네임스페이스가 사용되고, 명시적 트랜잭션에서는 EntityTransaction 클래스가 사용됩니다.

개념적 모델을 통해 노출되는 데이터를 업데이트하려면 방법: Entity Framework에서 트랜잭션 관리를 참조하세요.

섹션 내용

방법: EntityConnection 연결 문자열 작성

방법: PrimitiveType 결과를 반환하는 쿼리 실행

방법: StructuralType 결과를 반환하는 쿼리 실행

방법: RefType 결과를 반환하는 쿼리 실행

방법: 복합 형식을 반환하는 쿼리 실행

방법: 중첩된 컬렉션을 반환하는 쿼리 실행

방법: EntityCommand를 사용하여 매개 변수가 있는 Entity SQL 쿼리 실행

방법: EntityCommand를 사용하여 매개 변수가 있는 저장 프로시저 실행

방법: 다형 쿼리 실행

방법: Navigate 연산자로 관계 탐색

참고 항목