silverlight 4 ria wcf - вернуть несколько списков сложных объектов - PullRequest
1 голос
/ 03 августа 2011

Мне нужна помощь в определении правильного шаблона для этой ситуации:

У меня есть вид с 5 каскадными выпадающими списками. Когда вы выбираете значение из первого комбинированного списка, вызывается сервис, чтобы получить результаты для следующего комбинированного списка, который затем включается. Пользователь делает следующий выбор, и процесс продолжается. Это отлично работает. Далее мне дается случай, когда пользователь возвращается к этому представлению с уже выбранными данными и соответствующими данными, уже заполненными в каждом поле со списком.

Я не хочу делать все звонки по одному для получения данных, это кажется бесполезным. Вместо этого я хотел бы сделать один звонок и вернуть все данные сразу. Как лучше всего это сделать с помощью RIA WCF Services?

Вот то, что я пробовал, но это не работает, как я надеялся.

A) Я создал класс на стороне сервера, затем добавил метод в службу, возвращающую этот тип

public partial class SelectionValues
{
    public List<Series> SeriesList {get;set;}
    public List<BaseModel> BaseModelList {get;set;}
    public List<FullModel> FullModelList {get;set;}
    public List<Program> ProgramList {get;set;}
    public List<ExtendedWarranty> ExtendedWarrantyList{get;set;}
}

[in the service]
/// <summary>
/// This function does nothing, just exposes the SelectionValues type
/// </summary>
/// <returns></returns>
public IQueryable<SelectionValues> getUnitSelectionValues()
{
    throw new NotImplementedException();
}

Результат: ни один из списков, созданных на стороне клиента.

B) Поэтому я добавил .Shared.cs в файл класса, чтобы класс был таким же на стороне клиента. Затем я написал метод Service для возврата нужных мне данных Код работает, но данные в списках объекта SelectionValues ​​не попадают на клиентскую сторону.

[Invoke]
public SelectionValues GetValuesForExistingUnit( ..... )
{
    SelectionValues result = new SelectionValues ();
    ...
    return result
}

Есть ли способ вернуть несколько списков сложных объектов одновременно, или я обречен сделать несколько вызовов соединенными вместе?

1 Ответ

0 голосов
/ 09 августа 2011

Насколько я знаю, службы RIA возвращают только сущности из вашего DomainService.Я сделал что-то подобное, где мне нужно было вернуть собственную структуру.Я решил этот сценарий, создав простую службу WCF, которая возвращает мой новый объект со всеми списками, которые мне нужны внутри него.
Имейте в виду, что эти объекты отсутствуют в вашем Entityset, поэтому не пытайтесь изменить их и отправить ихсервер через службу RIA.

...