Я столкнулся с проблемой, когда RIA Services возвращает 3 объекта с сервера (я проверил при отладке серверного процесса и подтвердил через Fiddler, что служба возвращает 3 объекта.
Я использую MVVM, поэтому вызываю Load на стороне клиента, используя вспомогательную функцию, которую я позаимствовал из образца Шона Вильдермута: Вот этот код:
// Generic query handling
protected void PerformQuery<T>(DomainContext dc, string name, EntityQuery<T> qry, EventHandler<EntityResultsArgs<T>> evt) where T : Entity
{
dc.Load<T>(qry,(r) =>
{
if (evt != null)
{
try
{
if (r.HasError)
{
evt(this, new EntityResultsArgs<T>(r.Error));
}
else if (r.Entities.Count() > 0)
{
evt(this, new EntityResultsArgs<T>(r.Entities));
}
}
catch (Exception ex)
{
evt(this, new EntityResultsArgs<T>(ex));
}
}
}, null);
}
EntityResultsArgs - это простой класс, который предоставляет свойство исключения (называемое Error) и свойство Results (содержащее результаты, если они есть).
На сервере мы сопоставляем результат с помощью AutoMapper с нашими открытыми классами домена, и этот конкретный вызов службы возвращает IEnumerable.
Что мне не хватает (или что еще может помочь кому-то понять это).
Спасибо!