我正在使用 .NET Web 服务作为数据库的接口。从此 Web 服务返回行的最佳方法是什么?
我隐约记得 .NET 2.0 在返回 DataTable 对象方面存在问题。这些问题还存在吗?
更新: .NET 1.1 中的 一些问题。另外,我相信在 2.0 中,DataTable 在客户端被反序列化为 DataSet 对象。我对么?
您正在有效地尝试做 ADO.net 的工作吗?您最好返回 POCO(普通的旧 c# 对象),您可以有效地对其进行序列化以发送肥皂,然后将它们拉回另一边。也许您可以在您的问题中向我们提供更多信息,说明您要做什么。
DataRows 和 DataTables 在 .net 3.0 中没有改变。如果你想使用实体框架来传递东西,虽然你会遇到不同的麻烦。如果它们是行,请查看使用 Linq,并序列化然后将行实体作为集合传递。有一些方法可以在客户端将实体重构为数据上下文,以便引用链接备份等。
我同意斯宾塞的观点。使用 Web 服务,您可以与客户签订合同。不应该仅仅因为你想改变你的数据库的形状就破坏这个契约。我将创建一个与表结构匹配的类并返回该结构的“列表”对象。然后,当数据模型更改时,您可以维护此接口并创建与新结构匹配的第二个服务方法。