Типы возврата WCF - PullRequest
       6

Типы возврата WCF

0 голосов
/ 14 сентября 2010

У меня есть веб-вызов WCF, который возвращает результат команды SQL.

Однако эта команда SQL является динамической, поэтому я не знаю, сколько столбцов и какие типы данных там будут..

Как передать результаты через WCF в приложение Silverlight?

(Кстати, я хочу иметь возможность поместить эти данные в таблицу данных)

Спасибо

Ответы [ 4 ]

1 голос
/ 14 сентября 2010
Name    Age Height  Income
Adam    50  175     88
Paul    20  166     75
Ranj    19  188     69
Omar    25  200     45

становится:

Key Attribute   Value
Adam    Age         50
Adam    Height      175
Adam    Income      88
Paul    Age         20
Paul    Height      175
Paul    Income      75

Etc.

По сути, вы сглаживаете таблицу данных с произвольным числом столбцов в таблицу данных, в которой будет только 3 столбца (или 4, если вы хотите включить тип данных).

0 голосов
/ 14 сентября 2010

Для меня такая архитектура рэп веб-сервисов. Как вы хотите использовать данные с неизвестной структурой и типами данных?

Если вам нужно вернуть общие данные, используйте XElement или XmlElement в качестве типа возврата из вашей операции и конвертируйте результат в XML (вручную, сериализация, выбор FOR XML, ...).

0 голосов
/ 14 сентября 2010

Это снова и снова всплывает в мире бизнеса.

Тот, который я использовал (и ненавидел с местью), должен был вернуть DataSet или список списков строк с информацией заголовка, находящейся вПервый ряд.Затем сопоставьте имена столбцов с типами свойств.Все связаны с большим количеством преобразования кода и типов.

Лучшей альтернативой может быть возвращение фиксированного максимального количества столбцов (не все из них всегда используются):

  • Создайте представление с столбцами column1, column2 ... как вашим переменная имена столбцов (до вашего максимума)
  • Любые общие фиксированные столбцы (например, первичный ключ / id?) Добавляются обычно

Тогда по крайней мере вы можетесопоставьте это статически с клиентом.По сути, лучше всего избегать результата SQL с переменной компоновкой.

Удачи!

0 голосов
/ 14 сентября 2010

Довольно уродливо, но вы можете вернуть результаты в DataSet или преобразовать DataSet в строку XML (возможно, немного очищенную, например, с помощью XSLT).

Однако один из идеалов WCF - это строго типизированные интерфейсы, в том числе возвращаемые данные. При слабой типизации клиенту потребуется дополнительная информация для интерпретации XML.

...