2011-02-23 9 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をダウンロードしました。それはしませんでした。私は自分のリストを自分自身のラッパークラスに移して、それを第2のパラメータとして渡すことを試みた(here)。私は私のClass2オブジェクトのためのダミーメソッドを取得しようとしたが、ここに他の記事で示唆されている見つけた。

何も動作していません。私は不満を感じています。

ご意見をいただければ幸いです。私は何かがうまくいくことを期待してランダムな変更を行っているような気がします。

ありがとうございました。

編集: [OK]を、私は今日の基本に戻ってきました。ここに私のクラスである:

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; } 
} 

このinvokeメソッドが正常に動作し、私はすべてのプロパティを参照することができます。public void SaveTest(TestClassをTCを)

このinvokeメソッドが動作しない、testlistというがnullます。public void SaveTest(TestListClass tlc)

TestClassとTestListクラスの両方のInsert/Update/Deleteメソッドを追加しました。

誰かが迷っていることを知っていますか?

+0

Class1オブジェクトとClass2オブジェクトは、ドメインサービスに由来していますか?またはSilverlightクライアントに転送するためにRIAを使用している自分のクラスですか? – Rus

+0

@Rus - 彼らは自分のクラスで、RIAを使ってSilverlightクライアントに転送しています。 – Tyanna

答えて

0

ブログ投稿herehereが私の考えを助けるでしょう。あなたのオブジェクトをマークアップしてワイヤに渡す方法を示します。

私は簡単なデモアプリケーションをまとめて、hereをダウンロードできます。このアプリケーションは、Silverlightクライアントからの子オブジェクトのコレクションを持つオブジェクトを、RIAドメインサービスに渡すことを示しています。

+0

私はあなたのリンクを見て、Class2オブジェクトの私のドメインサービスのInsert/Update/Deleteメソッドに追加しました。私は再び走った。私のSilverlightアプリケーションでは、次のようにsaveオブジェクトを呼び出しています。var save = _context.SaveObject(changedObject);私がそれを呼び出すと、PierListにデータが読み込まれます。 SaveObjectメソッドでブレークポイントにヒットしたとき、PierListは空です。このリストが通過していないことは非常にイライラしています。余計な作業をせずに済むことが期待されるものです。 : – Tyanna

+0

Tyanna - あなたが探しているものをサンプルアプリケーションにまとめています。すぐにあなたのためのリンクがあります。 – Rus

+0

どうもありがとうございました! – Tyanna

関連する問題