我使用实体框架为我在连接到的数据库上编写的存储过程的结果创建了一个复杂类型。我现在正在编写一个web服务来返回存储过程的结果(即我刚刚创建的复杂类型的集合)。有人特别要求我从WCF服务返回SOAP。我的理解是,WCF服务将“自动”处理根据其使用者配置返回最合适的响应--那么返回ObjectResult是否会成功地“转换”为XML呢?还是必须先转换为List<>?如果是这样的话,还有比简单地循环对象结果更有效的方法吗?
非常感谢,任何帮助都非常感谢。
编辑:我必须解释一下,在这种情况下,使用者将是服务器端代码,我只需要确保如果客户端提出请求,它就会返回XML。
发布于 2012-02-02 20:30:45
在ObjectResult<T>实现IEnumerable<T>时,可以使用IEnumerable扩展方法,并使用以下方法获取T数组:
ObjectResult<ComplexType> res = ....;
ComplexType[] array = res.ToArray<ComplexType>(); // res.ToArray() is also fine because of type inference还要确保ComplexType是可序列化的。
发布于 2014-06-10 08:08:39
我们可以直接调用ToList()
using (var ts = new YourEntityFramework())
{
List<complex_object> lst = ts.YourSp().ToList();
}ObjectResult通过使用ToList()进行转换。因此,我们可以在数据访问层和列表上使用ObjectResult来传递其他层。
https://stackoverflow.com/questions/9119404
复制相似问题