datacontract属性在客户端变为只读 - WCF RIA

时间:2012-10-11 15:58:38

标签: wcf silverlight-4.0 wcf-ria-services

这是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属性,我得到ans错误,此属性是只读的。

我需要了解这个问题的原因和解决方法......

由于

1 个答案:

答案 0 :(得分:1)

您可能有一个DomainService,其查询类似于:

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

除非您有插入和/或更新的方法,否则WCF RIA无法更新实体并假定您打算将其设置为只读。尝试添加这些方法:

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

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

public void RemoveMyDataSet(MyDataSet entity)
{
    // Delete
}