2012-09-05 2 views
0

Entity Framework를 사용하여 데이터베이스 테이블 (Accommodation)을 나타내는 개체의 IQueryable을 반환하는 메서드가있는 WCF 서비스가 있습니다. 클라이언트 측에서이 메서드를 사용하려고하면이 메서드는 IQueryable을 반환하지 않지만 개체를 ​​반환합니다. 나는 서비스와 엔티티 프레임 워크가 생성하는 숙박 시설 클래스의 코드를보고이 속성을 그래서WCF 서비스에서 개체로 노출 된 데이터베이스 엔터티

[DataContractAttribute(IsReference=true)] 

을 가지고, AFAIK 클라이언트는 그 클래스를 볼 수 있어야합니다. 여기서 뭐가 잘못 됐어? 이 계약에 사용되는 경우

감사합니다,

답변

4

Sachin 유형은 메타 데이터 만 표시됩니다. 메타 데이터는 IQueryable의 개념을 알지 못합니다. 계약은 상태를 정의하지만 생성 된 코드는 무언가를 사용합니다. 즉, 오브젝트

EF를 사용하는 것은 실제로 바람직하지 않습니다 사실상 서비스 소비자와 데이터 액세스 계층을 긴밀하게 연결해야합니다. 서비스 경계에서 전달하려는 데이터를 정의하는 서비스 및 사용 유형에서 내부적으로 EF 사용

+0

데이터를 정의하는 유형을 사용할 경우 유일한 문제는 해당 데이터가 원하는 데이터와 정확히 동일하다는 것입니다 패스하고 싶은 테이블은 다른 테이블에 대한 링크를 가지고 있으며 그 결과를 전달하려고합니다. 결과적으로 왼쪽에있는 많은 과제가 거의 없습니다. –

+0

+1은 좋은 디자인 관행에 대해 말하고 있습니다. –

관련 문제