1

엔티티가 포함 된 DTO를 만들고 싶습니다. 어떻게해야합니까? 가능한가? 예를 들어Silverlight에서 DTO 안에 엔터티 및 엔터티 컬렉션을 넣는 방법 - WCF RIA?

내가 내 서버 프로젝트에서이 같은 있습니다

public class MyCustomDTO 
{ 
    [Key] 
    public int id { get; set; } 

    public EntityCollection<MyEntity> list { get; set; } 

    public MyEntity2 dummyproperty { get; set; } 

    public string name{ get; set; } 
} 

그러나 단지 기본 유형이 생성되는 클라이언트 측 및 수집 및 MyEntity2 입력 재산에

아니다.

내 목표는 ... 대신 여러 비동기 쿼리로 수집, 하나의 DTO에 몇 가지 다른 엔티티를 캡슐화하는 것입니다

또는이 시나리오에 적합한 다른 어떤 솔루션이 될 수 있습니다? 뭔가 빠졌거나 (일부 속성) 아니면 그냥 지원되지 않습니까?

답변

0

DTO 외에 서비스 메서드로 다른 엔터티를 노출해야 RIA 서비스에서 클라이언트 측에서 해당 엔터티를 추적 할 수 있습니다. 당신은 또한 클라이언트 측에서 검색되도록 당신의 엔티티에 [포함] 속성을 추가해야합니다

public class MyDomainService : LinqToEntitiesDomainService<MyContext> 
{ 
    public IQueryable<MyCustomDto> GetMyCustomDtos() 
    { 
     //... 
    } 

    public IQueryable<MyEntity> GetMyEntitys() 
    { 
     //... 
    } 

    public IQueryable<MyEntity2> GetMyEntity2s() 
    { 
     //... 
    } 
} 

: 같은 서비스가 보일 것입니다.

0

Silverlight 클라이언트와 WCF RIA 서비스간에 복잡한 유형을 전송할 수 있지만 DTO에 속성에 [키] 속성이 적용되어서는 안됩니다.

public class MyCustomDTO 
{ 
    //[Key] // comment this line and there you go. 
    public int id { get; set; } 

    public List<MyEntity> list { get; set; } 

    public MyEntity2 dummyproperty { get; set; } 

    public string name{ get; set; } 
} 

업데이트 당신은 당신의 응용 프로그램에서 복잡한 유형을 사용하기 전에 WCF RIA Services V1.0 SP1 for Silverlight 4를 설치해야합니다. WCF RIA Services V1.0 SP1은이 서비스 팩의 변경에 대한 좋은 기사입니다.

+0

"하지만 DomainService의 엔티티에 KeyAttribute가 표시된 공용 속성이 하나 이상 있어야합니다." : //forums.silverlight.net/t/202531.aspx에서 RIA 도메인 서비스는 엔티티와 만 작동 할 수 있으므로 복잡한 유형은 엔티티의 일부로 만 보낼 수 없습니다. –

+0

Silverlight 용 WCF RIA SP1을 설치해야합니다. 대답 만 업데이트합니다. – Ekk

+0

나는 일을했지만 아직도하지 못했습니다. 나는 내 DomainService가 LinqToEntitiesDomainService이기 때문에 생각하지 않는다. LinqToEntitiesDomainService에서 상속받지 않은 다른 DomainService를 작성해야합니까? (내 현재 도메인 서비스는 .edmx 파일에서 생성되었으며 일부 서비스 클래스를 만든 후 별도의 파일에서 사용자 지정 쿼리로 확장했습니다.) –