다음을 통해 공유


Entity Framework용 EntityClient 공급자

EntityClient 공급자는 Entity Framework 응용 프로그램에서 EDM(엔터티 데이터 모델)에 설명된 데이터에 액세스하는 데 사용하는 데이터 공급자입니다. EDM에 대한 자세한 내용은 Entity Framework의 데이터 모델링을 참조하십시오. EntityClient는 다른 .NET Framework 데이터 공급자를 사용하여 데이터 소스에 액세스합니다. 예를 들어 EntityClient는 SQL Server 데이터베이스에 액세스할 때 .NET Framework Data Provider for SQL Server(SqlClient)를 사용합니다. SqlClient 공급자에 대한 자세한 내용은 Entity Framework용 .NET Framework Data Provider for SQL Server(SqlClient)를 참조하십시오. EntityClient 공급자는 System.Data.EntityClient 네임스페이스에 구현되어 있습니다.

연결 관리

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

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

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

쿼리 작성

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

다음 예제에서는 EntityCommand 개체를 만들어 해당 System.Data.EntityClient.EntityCommand.CommandText 속성에 Entity SQL 쿼리 텍스트를 할당합니다. 이 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는 EDM에 대한 EntityCommand 실행 결과를 노출합니다. EntityDataReader를 반환하는 명령을 실행하려면 ExecuteReader를 호출합니다. EntityDataReader는 결과를 다양한 구조로 보여 주는 IExtendedDataRecord를 구현합니다. 자세한 내용은 How to: Execute an Entity SQL Query Using EntityCommand(Entity Framework)을 참조하십시오.

트랜잭션 관리

Entity Framework에서 트랜잭션을 사용하는 데는 자동 및 명시적 방법의 두 가지 방법이 있습니다. 자동 트랜잭션에서는 System.Transactions 네임스페이스가 사용되고, 명시적 트랜잭션에서는 EntityTransaction 클래스가 사용됩니다.

EntityCommand 구문을 사용하여 EDM(엔터티 데이터 모델)을 통해 노출되는 데이터를 업데이트할 수는 없습니다. 개체 서비스를 사용해야 합니다. 개체 서비스를 사용하여 데이터를 업데이트하는 방법에 대한 자세한 내용은 방법: 개체 서비스 트랜잭션 관리(Entity Framework)를 참조하십시오.

참고 항목

기타 리소스

연결 및 트랜잭션 관리(Entity Framework 작업)
ADO.NET Entity Framework
Entity Framework 작업
기능 참조(Entity Framework)
개체 서비스(Entity Framework)