Сериализация объектов с помощью RIA Services - PullRequest
2 голосов
/ 01 июля 2010

У меня есть приложение Silverlight, которое требует довольно много данных для работы и требует всего этого заранее.Он использует RIA Services (и Entity Framework), чтобы получить всю эту информацию.На получение всех данных уходит 10-15 секунд, но данные меняются только раз в месяц.

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

Структура графика мне нужнохранить (более или менее) типичная древовидная структура.У модели есть компоненты, у компонента есть особенности, у функции есть опции.Проблема, с которой я сталкиваюсь, заключается в том, что, когда я прошу сериализовать эту корневую сущность (модель), она только сериализует объект верхнего уровня и игнорирует все «дочерние» объекты.Кто-нибудь знает удобный способ заставить его сериализовать / десериализовать весь граф?

1 Ответ

0 голосов
/ 06 июля 2010

ЕСЛИ сервисы RIA - это проблема, тогда у меня может быть подсказка.

Для передачи коллекций объектов через RIA вам нужно немного изменить модель предметной области.квитанция со списком ReceiptEntries.Тогда вы сделаете это.

public Receipt {
    public guid Id;
    public List<ReceiptEntry> Entries;
}


public ReceiptEntry {
    public guid ReceiptId;
}

вы должны указать RIA, как связать эти объекты.

[Include()]
[Composition()]
[Association("ReceiptEntries", "Id", "ReceiptId"]
public Receipt {
    public guid Id;
    public List<ReceiptEntry> Entries;
}

Затем он сериализует список объектов.

Я мог бы написать странный синтаксис, потому что я привык к VB.net или у меня есть небольшие ошибки в примере кода, просто выкинул его.Но если проблема заключается в том, что RIA не передает объекты так, как это должно быть, то вам следует изучить этот сценарий.Если вы еще этого не сделали.

...