我们可以从WCF方法返回SqlDataReader OR DataTable

时间:2013-02-27 09:08:29

标签: wcf

我是WCF的新手。我对从WCF方法返回数据有疑问。

我们可以从WCF方法返回SqlDataReader OR DataTable对象吗?

感谢

3 个答案:

答案 0 :(得分:0)

是的,你可以,但是DataTable有很多开销,你可能会考虑将它写入实体列表并传递这个列表

这样可以减少麻烦

答案 1 :(得分:0)

您应该创建一个新对象,然后返回这些对象的集合。这样的事情。

public class Thing
{
    public int ID { get; set; }
    public string Name { get; set; }
}

然后使用数据表/阅读器,您可以使用LINQ或迭代来创建集合:

粗糙的sudo-code:

Initialise List for Thing

foreach var v in DataTable
{
    List<Thing>.Add(new Thing(){ ID = v.ID, Name = v.Name });
}

return List

或者,您可以使用linq:

List<Thing> theList = DataTable.Select(x => new Thing { ID = x.ID, Name = x.Name });

return theList;

你可以把剩下的事情搞清楚,我敢肯定,如果你需要更多的澄清,我会扩展我的答案。希望这会有所帮助。

答案 2 :(得分:0)

是的,100%你可以使用.net支持的任何返回类型返回。但唯一的事情是WCF非常灵活,因此WCF的客户端始终不是100%.net框架。它也可以被java使用。和java returntype并不是100%相当于.net returntype所以你需要关心它。 例如,通用列表默认在客户端转换为可观察集合。