Риа Сервис: Включенные объекты обнуляются при возврате в сервис - PullRequest
3 голосов
/ 16 марта 2012

Я использую атрибут Include в своих свойствах, и они должным образом передаются обратно клиенту, но как только я отправил его обратно в службу ria для дальнейшей обработки свойства, теперь он равен нулю.

internal sealed class lSyncMetadata
{    
    private lSyncMetadata()
    {
    }

    public string ConflictMessage { get; set; }

    public DateTime DateInserted { get; set; }

    public Guid vValueId { get; set; }
    [Key]
    public Guid ID { get; set; }

    public bool IsConflict { get; set; }

    public bool IsReadyToSync { get; set; }

    public Guid SyncSet { get; set; }
    [Include]
    public vValue vValue { get; set; }    
}

1 Ответ

1 голос
/ 16 марта 2012

RIA Services Client не сериализует никакое свойство, кроме типа значения и строки, поскольку обычные свойства навигации могут привести к циклическим ссылкам, и будет невозможно определить, что отправлять, а что - не отправлять.Более того, чтобы уменьшить сетевой трафик и обеспечить надлежащее отслеживание изменений, наборы изменений представляются службами RIA, но только для объектов, которые он отслеживает.

Службы RIA предназначены для репликации отслеживания объектов на стороне клиента.ожидается, что вы будете обновлять, извлекать свойства навигации (связанные объекты) по требованию, и вы должны позволить RIA Services управлять тем, что отправлять, а что не отправлять.

Однако функция «Включить» работает только с сервера на клиент, но неработать от клиента к серверу, действительно, если вы вносите изменения в свойства навигации, службы RIA будут правильно определять и отправлять наборы изменений.

Для чего-либо, кроме этого, вам потребуется создать обычную службу WCF или веб-службу, чтобы сделатьэта работа и доступ к ней с клиента.

Поддерживаются сложные типы, включающие только типы значений, но они не могут иметь тип Entity, имеющий ключ Entity.

...