从ObjectResult <complextype>返回List <complextype> - 它是XML吗?</complextype> </complextype>

时间:2012-02-02 20:22:41

标签: c# wcf entities complextype

我使用实体框架创建了一个复杂类型,用于我在连接到的数据库上编写的存储过程的结果。我现在正在编写一个Web服务来返回存储过程的结果(即我刚刚创建的复杂类型的集合)。我被特别要求从WCF服务返回SOAP XML。我的理解是,WCF服务会“自动”处理基于它的消费者配置返回最合适的响应 - 所以会将ObjectResult成功地“转换”为XML吗?或者我必须转换为List&lt;&gt;第一?如果是这样的话 - 有没有比简单地循环对象结果更有效的方法呢?

非常感谢,任何帮助都非常感谢。

编辑:我必须解释一下,在这种情况下,消费者将是服务器端代码,我只需确保 返回XML,如果客户端请求它。

2 个答案:

答案 0 :(得分:4)

ObjectResult<T>实现IEnumerable<T>时,您可以使用IEnumerable扩展方法并使用以下方法获取T数组:

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

还要确保ComplexType可序列化。

答案 1 :(得分:-2)

我们可以直接致电ToList()

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

使用ToList()转换ObjectResult。那么我们可以在我们的数据访问层和List上使用ObjectResult来传递其他层。