Entity Framework 공급자(WCF Data Services)
WCF Data Services와 마찬가지로 ADO.NET Entity Framework는 엔터티-관계 모델의 한 형식인 엔터티 데이터 모델을 기반으로 합니다. Entity Framework는 개념적 모델이라는 엔터티 데이터 모델의 구현에 대한 작업을 데이터 소스에 대한 동등한 작업으로 변환합니다. 따라서 Entity Framework는 관계형 데이터를 기반으로 하는 데이터 서비스에 적합한 공급자이며, Entity Framework를 지원하는 데이터 공급자가 있는 모든 데이터베이스를 WCF Data Services와 함께 사용할 수 있습니다. 현재 Entity Framework를 지원하는 데이터 소스 목록은 Third-Party Providers for the Entity Framework를 참조하십시오.
개념적 모델에서 엔터티 컨테이너는 서비스 루트입니다. 먼저 Entity Framework에서 개념적 모델을 정의해야 데이터 서비스가 데이터를 노출할 수 있습니다. Entity Framework는 개념적 모델 기반의 개체 계층을 자동으로 생성하는 도구를 제공합니다. 개체 계층에는 ObjectContext 클래스에서 상속하는 엔터티 형식과 컨테이너 클래스가 들어 있습니다. 일반적으로 컨테이너 클래스에는 지정된 형식의 IQueryable<T> 엔터티 컬렉션을 반환하는 엔터티 집합 속성도 들어 있습니다. Entity Framework 공급자를 사용하는 경우 Northwind 데이터 서비스에 대한 다음 예제와 같이 이 컨테이너 클래스를 데이터 서비스가 파생되는 DataService<T> 형식으로 제공하기만 하면 됩니다.
Public Class Northwind
Inherits DataService(Of NorthwindEntities)
public class Northwind : DataService<NorthwindEntities>
자세한 내용은 방법: ADO.NET Entity Framework 데이터 원본을 사용하여 데이터 서비스 만들기(WCF Data Services)를 참조하십시오.
Entity Framework의 Code First 기능은 Entity Framework 4.1에서 도입되었습니다. Code First 기능을 사용하여 데이터 모델을 정의하는 경우 ObjectContext 클래스가 아닌 DbContext 클래스에서 파생되는 컨텍스트 클래스를 정의합니다. DbContext 인스턴스를 데이터 서비스가 파생되는 DataService<T> 형식으로 사용할 수도 있습니다.
WCF Data Services는 엔터티의 동시성 토큰을 정의할 수 있도록 하여 낙관적 동시성 모델을 지원합니다. 엔터티의 속성을 하나 이상 포함하는 이 동시성 토큰은 요청되거나 업데이트 또는 삭제되고 있는 데이터가 변경되었는지 여부를 데이터 서비스에서 확인하는 데 사용됩니다. 요청의 eTag에서 가져온 토큰 값이 엔터티의 현재 값과 다르면 데이터 서비스에서 예외가 발생합니다. 속성이 동시성 토큰의 일부임을 나타내려면 Entity Framework 공급자가 정의하는 데이터 모델에서 ConcurrencyMode="Fixed" 특성을 적용해야 합니다. 동시성 토큰에는 키 속성이나 탐색 속성이 포함될 수 없습니다. 자세한 내용은 데이터 서비스 업데이트(WCF Data Services)를 참조하십시오.
Entity Framework에 대한 자세한 내용은 Entity Framework Overview를 참조하십시오.