2012-04-04 7 views
1

좋아,이게 wcf 웹 서비스에서 어떻게 작동하는지 혼란스러워.관계?

내가 가진


그룹 (그룹 ID)
태그 (TagsID)
사용자 (아이디)

지금 그룹이 프로그램과 관련된, 태그는 말할 수 (ID로 관련) 프로그램 또한 모든 그룹 및 사용자와 연관된 사용자입니다. CSHARP이 프로그램 컴퓨팅 및 태그 웹 서비스나머지하지만 나머지 태그는 또한 내가 모든 그룹이 관련된 리턴 어떻게 그룹 asp.net과 관련된과 관련된 인스턴스 그룹

나머지는?

나는이 :

IGroupService
IProgrammeService
ITagService
IUsers

어떻게 그들을 연결 등 태그와 관련된 그룹과 그룹에 속하는 사용자를 반환합니까?

+1

잘 모르겠습니다. 이 모든 정보를 서비스에 대한 단일 호출로 반환하려고하고이 모든 관계 (그리고 순환 가능성이있는 참조)가있는이 유형의 객체 그래프에 대해 데이터 계약이 무엇이 될지 궁금하십니까? –

+0

@KevinJunghans : 답변으로 답하십시오. –

답변

1

잘 모르겠습니다. 이 모든 정보를 서비스에 대한 단일 호출로 반환하려고하고이 모든 관계 (그리고 순환 가능성이있는 참조)가있는이 유형의 객체 그래프에 대해 데이터 계약이 무엇이 될지 궁금하십니까?

나는 최신 정보에 대한 질문에 대해 더 혼란 스러울 지 모르지만 나는 이것에 대해 마지막으로 한 가지를 짚어 보겠다. 더 혼란스러운 것은 "엔티티"라는 용어에 대한 참조입니다. EF 질문이 많습니까? 링크가 EF의 문제인 경우 코드 우선 접근 방법 만 사용한다고 가정 할 수 있습니다. 태그와 그룹을 연결하는 예는 다음과 같습니다. 당신이 당신의 클라이언트에서 프록시를 만들 것

 public List<Group> GetGroups(string TagName) 
     { 
      List<Group> groups = (from g in _program.Groups where 
      (from t in g.Tags where t.Name == TagName select t).Count() > 0 
       select g).ToList(); 
      return groups; 
     } 

는 SOAP를 사용하는 경우와 서비스를 호출 :

public class Group 
    { 
     public Group() 
     { 
      Tags = new List<Tag>(); 
     } 
     public string Name { get; set; } 
     public List<Tag> Tags { get; set; } 
    } 

    public class Tag 
    { 
     public string Name { get; set; } 
    } 

특정 당신이 이런 일을 할 것입니다 Linq에를 사용하여 태그가 모든 그룹에 대한 조회하려면 이과 같습니다

 string tagName = "rest"; 
     List<Group> groups = proxy.GetGroups(tagName); 

당신이 다음 간단한 HTTP 요청이 될 것 REST API를 작성하는 경우 :

http://server/api/GetGroups?tagName=rest 

여기서 서비스는 그룹을 나타내는 XML 또는 JSON을 반환합니다.

귀하는 귀하의 서비스에 대한 운영 및 데이터 계약이 포함되어 있다고 가정하는 많은 인터페이스를 열거합니다. 엔티티별로 서비스를 중단 할 필요는 없으며 특정 작업 및 데이터 계약을 어디에 둘 것인지 혼란 스러울 수 있습니다. 서비스가 여러 엔터티에 대한 정보를 반환하면 서비스 전체에서 데이터 계약을 반복해야합니다. 엔터티에 의한 서비스 중단은 많은 이점을 제공하지 않으며 사용자와 서비스 사용자에게만 더 어려움을줍니다.

+0

예, 한 번에 모든 전화가 아닙니다. 작은 예제를 제공 할 수 있습니까? –

+0

예제를 제공하기에 충분한 정보가 아직 부족합니다. WCF에서 어떤 유형의 바인딩을 사용하고 있습니까? 이 API는 RESTful API인가 아니면 SOAP을 사용하고 있습니까? 관계가있는 객체의 전체 정의는 무엇입니까? 한 번에 모든 전화를 제공하고 싶지 않다면 전화를 끊는 방법은 무엇입니까? 운영 계약서를 정의 했습니까? 그렇다면 무엇입니까? 어떤 부분을 시도하고 정확히 무엇을 고집하고 있습니까? –

+0

그냥 엔티티를 어떻게 링크합니까? 그럼 어떻게 부를까요? –