2010-05-11 2 views
3

EF4/POCO를 기반으로하며 잘 작동하는 기존 리포지토리가 있습니다. 우리는 WCF Data Services를 사용하여 서비스 계층을 추가하고 모범 사례 조언을 원합니다.EF 기반 저장소에서 데이터를 소비하는 WCF 데이터 서비스

지금까지 우리는 IQueryable 속성을 가진 클래스를 개발했으며 getter는 저장소의 '모든 사용자 가져 오기'메소드를 트리거합니다. 문제는 지금까지 2 배였습니다 :

1) 우리는 poco 객체의 ID 필드를 장식하여 데이터 서비스에 어떤 필드가 id인지 알려줄 것을 요구했습니다. 이것은 이제 POCO 객체가 '순수'하지 않다는 것을 의미합니다.

2) 개체 간의 관계를 알아낼 수 없습니다 (이는 분명합니다).

이제이 방법을 사용하지 않고 저장소에서 OBjectContext를 노출하고 EF의 '자동'기능을 더 많이 사용해야한다고 생각합니다.

누군가 WCF 데이터 서비스에서 저장소 패턴을 사용하는 데 대한 조언이나 예가 있습니까?

+0

+1 좋은 질문이 있나요? –

답변

0

나는 실용적이라고 생각합니다. POCO 꾸미기가 다른 것을 어지럽 혔습니까? 그렇지 않다면 아마 그것을하는 것이 가장 좋은 방법 일 것입니다.

WCF 데이터 서비스 및 oData는 매우 새롭고 지침을 찾고 있었으며 약간 얇은 것 같습니다.

+0

아니요.하지만 iocery가 ICollection 인 T4를 생성하는 대신 IQueryable을 사용하여 관계를 정의 할 필요가 있음을 발견했습니다. 이것이 많은 영향을 미칠 것이라고 생각합니까? –

0

공개하고 싶은 대상과 사용 대상에 대해 좀 더 확장 할 수 있습니까?

내가 MyRepository을 갖는 우리의 프로젝트

  • 지금까지 본 적이 문제 : ObjectContext를하고 MyDataService로 : DataService의 로직을 분리, 그래서 우리는 만든 헬퍼를했습니다.
  • 쿼리 및 변경 인터셉터는 친구이지만 은 도우미 (또는 기본 클래스)에 위임하여 DRY를 보장해야합니다. 즉, 저장소가 이미 에 GetAllUsers를 가지고 있고 myservice.svc/Users가 처리하지 않는 논리를 수행하는 경우 필터링을 수행하려면 인터셉터를 구현해야 할 수 있습니다. 다시 말하면 DRY는 도우미) 저장소와 인터셉터 모두 을 사용할 수 있습니다. 당신은 당신이 볼 수있는 단지 것들을 볼 수있어 보장 에 좋은 방법, 질의 요격에 -
  • asp.net 호환성은 인증/ 인증에 멋지게 활용할 수 있습니다.

트랩의 몇 ....

  1. 플래시/플렉스는 아마 플래시/ 플렉스는 HTTP PUT/MERGE를 사용하거나 삭제할 수없는 문제가있을 것이다 기반으로하는 경우 .당신은 자바 스크립트/JQuery와라면, 당신이 JSON에

전반적으로 켜 있는지, 내가 정말 좋아하는 슈퍼 빠른 방법은 노출 할 수 있도록 X-httpmethod 오버라이드 (override)

  • 를 사용하여 주위 이를 얻을 수 API를 제공하고 무거운 비즈니스 로직이 없다면 잘 작동합니다.

  • 관련 문제