0

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

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

谢谢

4

3 回答 3

0

是的,你可以 100% 使用 .net 支持的任何返回类型返回。但唯一的问题是 WCF 非常灵活,所以 WCF 的客户端并不是 100% 的 .net 框架。它也可以被java使用。并且 java returntype 不是 100% 等同于 .net returntype 所以你需要注意它。例如,默认情况下,通用列表在客户端转换为可观察集合。

于 2013-06-26T07:38:23.233 回答
0

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

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

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

粗略的 sudo 代码:

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;

我敢肯定,您可以弄清楚其余部分,如果您需要更多说明,我将扩展我的答案。希望这可以帮助。

于 2013-02-27T09:21:44.487 回答
0

是的,您可以,但是 DataTable 有很多开销,您可能会考虑将其写入实体列表并传递此列表

这样给我带来的麻烦少了很多

于 2013-02-27T09:12:02.577 回答