RIA 서비스를 사용하는 Silverlight 5 Business Application을 사용하여 서비스 측면에서 POCO 클래스를 반환하여 계층 적 메뉴를 채 웁니다.Silverlight POCO가 RIA 서비스에서 반환했습니다.
원래 POCO 클래스와 관련된 문제는 서비스 측면에서 채워졌지만 SubMenuItems 속성이 RIA 서비스를 통해 전달되지 않는다는 것입니다.
원래 POCO
public class BusinessModelMenuDto
{
[Key]
[Required]
public int ID { get; set; }
public string TextToDisplay { get; set; }
public string ImageSource { get; set; }
public IEnumerable<BusinessModelMenuDto> SubMenuItems { get; set; }
}
나는 [Include]
및 [Association]
속성을 통해 데이터를 전달하기 위해 SubMenuItems에 필수 였을 발견 된 일부 추가 조사에 따라 서비스 호출
public IEnumerable<BusinessModelMenuDto> GetCabsHeirarchy()
. ID => ID 협회에서 처음으로이 작업을 수행 한 결과 원하는 결과가 없었으므로 ParentID 속성을 추가하고 아래 코드와 같이 외부 키를 채우도록 내로드 코드를 변경했습니다. 또한 Associate를 ID에서 Parent ID로 매핑하도록 변경했습니다.
는 최상위 항목이 하위 항목의 컬렉션을 포함하지만, 그 아래에 더 이상 하위 항목이 없기 때문에 나는 순간에 메뉴 두 가지 수준을로드하고 서버 측에서 POCO 클래스를
public class BusinessModelMenuDto
{
[Key]
[Required]
public int ID { get; set; }
public int? ParentID { get; set; }
public string TextToDisplay { get; set; }
public string ImageSource { get; set; }
[Include]
[Association("SubItems", "ID", "ParentID")]
public IEnumerable<BusinessModelMenuDto> SubMenuItems { get; set; }
}
업데이트되었습니다.
내가 가진 문제는 RIA 서비스가 유선을 통해 컬렉션을 전송할 때 계층 구조가 뒤죽박죽이되고 있다는 것입니다. 반환 된 내용이 올바르게 구조화되어 있지만 클라이언트 측에 올바르게 도착하지 않았 음을 확인했습니다. 최상위 수준은 정상이지만 두 번째 수준 (SubMenuItems)이 혼합되어 두 개의 더 진한 SubMenuItems 수준이 나타납니다.
내가 뭘 잘못하고 있는지 알기! 문제는 Association 또는 여러 POCO 개체 (BusinessModelMenuDto)가 여러 수준에 사용된다는 사실과 관련이 있다고 가정합니다.
나는 우리의 코드를 통해 빠른 모습을 가지고 있습니다. 나는 전문가는 아니지만 비슷한 구조를 가진 곳이라면 IEnumerable <>이 아닌 List <>를 사용하고 있습니다. – GarethOwen
기본 객체는 List 이었지만 IList 으로 Property를 변경하려고했지만 여전히 작동하지 않습니다. . –
DomainService의 쿼리 메서드를 게시 할 수 있습니까? – Jehof