0

これは、WCF RIA サービス レイヤーの DataContract です...

[Serializable()]
[DataContract]
public class MyDataSet
{
    [Include]
    [Association("ListTables", "DataSetName", "DataSetName")]
    [DataMember]
    public Collection<DataTableInfo> Tables { get; set; }

    [Key]
    [DataMember]
    public string DataXML { get; set; }

    [DataMember]
    public string DataSetName { get; set; }
}

クライアント側のビュー モデルで、この DataContract の新しいインスタンスを作成し、Tables プロパティに任意の値を割り当てようとすると、このプロパティが読み取り専用であるというエラーが表示されます。

この問題の理由と回避策を理解する必要があります...

ありがとう

4

1 に答える 1

1

おそらく、DomainService次のようなクエリがあります。

[EnableClientAccess]
public class MyDomainService : DomainService
{
    public IQueryable<MyDataSet> GetMyDataSets()
    {
        /* return something; */
    }
}

Insert や Update のメソッドがない限り、WCF RIA にはエンティティを更新する方法がなく、エンティティを読み取り専用にするつもりであると見なされます。これらのメソッドを追加してみてください:

public void CreateMyDataSet(MyDataSet entity)
{
    // Insert
}

public void UpdateMyDataSet(MyDataSet entity)
{
    // Update
}

public void RemoveMyDataSet(MyDataSet entity)
{
    // Delete
}
于 2012-10-11T23:10:43.173 に答える