Мне нужна помощь в определении правильного шаблона для этой ситуации:
У меня есть вид с 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
}
Есть ли способ вернуть несколько списков сложных объектов одновременно, или я обречен сделать несколько вызовов соединенными вместе?