Свойство datacontract становится доступным только для чтения на стороне клиента — WCF RIA

Вот DataContract на уровне служб WCF RIA...

[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, получаю сообщение об ошибке, что это свойство доступно только для чтения.

Мне нужно понять причину и обходной путь этой проблемы...

Спасибо


person ak1    schedule 11.10.2012    source источник


Ответы (1)


arrow_upward
1
arrow_downward

Вероятно, у вас есть 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
}
person Ed Chapel    schedule 11.10.2012