Возврат списка <ComplexType>из ObjectResult <ComplexType>- и будет ли это XML? - PullRequest
1 голос
/ 03 февраля 2012

Я создал сложный тип, используя структуру сущностей для результатов хранимой процедуры, которую я написал в базе данных, к которой я подключен. Сейчас я пишу веб-сервис для возврата результатов из хранимой процедуры (то есть коллекции сложного типа, который я только что создал). Меня специально попросили вернуть SOAP XML из службы WCF. Насколько я понимаю, служба WCF будет «автоматически» иметь дело с возвратом наиболее подходящего ответа, основанного на конфигурации потребителя, - так будет ли возвращение ObjectResult успешно «переведено» в XML? Или я должен сначала преобразовать в список <>? И если да, то есть ли более эффективный способ, чем просто циклический просмотр результата объекта?

Большое спасибо, любая помощь серьезно ценится.

РЕДАКТИРОВАТЬ: Я должен объяснить, что в этом случае потребителем будет код на стороне сервера, я просто должен убедиться, что он возвращает XML, если клиент запрашивает его.

Ответы [ 2 ]

4 голосов
/ 03 февраля 2012

Поскольку ObjectResult<T> реализует IEnumerable<T>, вы можете использовать IEnumerable методы расширения и получить массив T, используя:

ObjectResult<ComplexType> res = ....;
ComplexType[] array = res.ToArray<ComplexType>();  // res.ToArray() is also fine because of type inference

Также убедитесь, что ComplexType является сериализуемым.

0 голосов
/ 10 июня 2014

мы можем вызвать напрямую ToList()

using (var ts = new YourEntityFramework())
{
    List<complex_object> lst = ts.YourSp().ToList();
}

ObjectResult конвертируется с помощью ToList ().так что тогда мы можем использовать ObjectResult на нашем уровне доступа к данным и List, чтобы передать его другим слоям.

...