2011-02-23 1 views
0

저는 여기에 대해 잘 알고 있습니다. 나는 내가 빠진 것을 이해하지 못한다. 내가 object.ItemList을 말할 때도메인 서비스 메서드로 전달할 때 개체 목록이 항상 비어 있습니다.

[Invoke] 
    public void SaveObject(Class1 object) { ... } 

, 항상 비어 : 내가 저장 방법이 내 도메인 서비스에서

[DataContract] 
public partial class Class1 
{ 
    [Key()] 
    [DataMember] 
    public string ID 
    { 
     get; set; 
    } 

    ... 

    [Include] 
    [DataMember] 
    [Composition] 
    [Association("FK_Class1ID", "ID", "Class1_ID")] 
    public List<Class2> PierList 
    { 
     get; set; 
    } 

} 

[DataContract] 
public partial class Class2 
{ 
    // This class has 3 values that make the key 
    [Key()] 
    [DataMember] 
    public string Class1_ID 
    { 
     get; set; 
    } 

    [Key()] 
    [DataMember] 
    public int XID 
    { 
     get; set; 
    } 

    [Key()] 
    [DataMember] 
    public int YID 
    { 
     get; set; 
    } 

    [DataMember] 
    public EnumType Type 
    { 
     get; set; 
    } 

    ... 
} 

[DataContract] 
public enum EnumType 
{ 
    [EnumMember] 
    Val1, 
    [EnumMember] 
    Val2, 
    [EnumMember] 
    Val3, 
    [EnumMember] 
    Val4 
} 

:

여기 내 설정입니다. 그것은 클라이언트에 설정되어 있지만, 여기에 도착하면 비어 있습니다.

내 문제를 해결하기를 희망하는 SP1 Beta를 다운로드했습니다. 그렇지 않았습니다. 내 목록을 자신의 래퍼 클래스로 이동시키고 두 번째 매개 변수로 전달 (시도한 here)했습니다. 나는 여기에 다른 게시물에 제안 된 것으로 발견 클래스 내 개체에 대한 메서드를 얻을 더미 만들기 시도.

아무것도 작동하지 않으며 좌절하고 있습니다.

의견을 보내 주시면 대단히 감사하겠습니다. 나는 무언가가 잘되기를 희망하면서 무작위로 변화를 가하고있는 것처럼 느껴진다.

감사합니다.

편집 : 좋아, 이제 기본 사항으로 되돌아갔습니다. 여기 내 클래스는 다음과 같습니다 공공 무효 SaveTest (TestClass에 TC를)

작동하지 않습니다이 호출 방법, TestList가 null :

public partial class TestClass 
{ 
    [Key] 
    public string ID { get; set; } 
    public string ListID { get; set; } 
    public int X { get; set; } 
    public int Y { get; set; } 
    public string Type { get; set; } 
} 

public partial class TestListClass 
{ 
    [Key] 
    public string ListID { get; set; } 

    [Include] 
    [Composition] 
    [Association("TestListClass_ID", "ListID", "ListID")] 
    public EntitySet<TestClass> TestList { get; set; } 
} 

방법은 잘 작동이 호출, 나는 모든 속성을 볼 수있는 공개 무효 SaveTest (TestListClass tlc)

TestClass 및 TestList 클래스 모두에 대해 Insert/Update/Delete 메서드를 추가했습니다.

내가 누락 된 부분을 아는 사람이 있습니까?

+0

Class1 및 Class2 개체가 도메인 서비스에서 비롯된 것입니다. 또는 RIA를 사용하여 Silverlight 클라이언트로 전송하는 자신의 클래스입니까? – Rus

+0

@Rus - 이들은 내 Silverlight 클라이언트로 전송하기 위해 RIA를 사용하는 클래스입니다. – Tyanna

답변

0

블로그 게시물 herehere이 도움이 될 것입니다. 객체를 와이어 위로 전달하도록 객체를 마크 업하는 방법을 보여줍니다.

here을 다운로드 할 수있는 간단한 데모 응용 프로그램을 작성했습니다. 이 앱은 실버 라이트 클라이언트의 자식 개체 컬렉션이있는 개체를 RIA 도메인 서비스로 전달합니다.

+0

귀하의 링크를보고 Class2 개체에 대한 내 도메인 서비스의 삽입/업데이트/삭제 메서드에 추가되었습니다. 나는 다시 뛰었다. 내 Silverlight 응용 프로그램에서 저장 개체를 이렇게 호출합니다. var save = _context.SaveObject (changedObject); 그걸 부르면 PierList가 채워집니다. SaveObject 메서드에서 중단 점에 도달하면 PierList가 비어 있습니다. 이 목록이 통과하지 못하는 것은 매우 실망 스럽습니다. 그것은 당신이 여분의 작업없이 할 수 있다고 기대할 수있는 것입니다. : – Tyanna

+0

Tyanna - 찾고있는 것을 수행하는 샘플 앱을 작성 중입니다. 곧 링크를 드리겠습니다. – Rus

+0

도움을 주셔서 감사합니다. 나는 오늘 노력해왔다. 따라하기 쉽다. (희망) – Tyanna