为什么从WCF服务返回数据集或数据表不是一个好习惯?有什么替代品?

Khu*_*Ali 9 c# sql datatable wcf dataset

我正在使用大学管理系统,我正在使用WCF服务,在服务中我使用DataTables和DataSets从数据库和数据库获取数据是sql server.

我的问题是

  • 使用DataTables和数据集"良好实践"还是"不良实践"?
  • 如果不好,DataTable/DataSet的替代方案是什么?
  • 如果不好,主要原因是什么?

Sey*_*our 10

从Web服务返回数据集通常不被视为"良好实践".这些问题已在以下链接中详细记录:

http://msdn.microsoft.com/en-us/magazine/cc163751.aspx
http://www.4guysfromrolla.com/articles/051805-1.aspx
http://msdn.microsoft.com/en-us/杂志/ cc188755.aspx

总之,DataSet从Web服务返回对象的最大问题似乎涉及序列化性能,非.NET互操作性.此外,DataSet直到运行时通常高数据结构的通用多态性,因此,WSDL定义不提供方法签名的完整描述.然而,与任何设计决策一样,您需要权衡成本与收益,并根据您的具体目标和约束确定最佳匹配.

在替代方案方面,您可以考虑使用通用集合(例如List<yourClassHere>),或者甚至考虑一些架构修订以允许使用ODATA.

以下链接为通过Web服务返回实体提供了一些很好的背景参考. http://msdn.microsoft.com/en-us/library/orm-9780596520281-01-14.aspx http://www.codeproject.com/Articles/127395/Implementing-a-WCF-Service-with-Entity -Framework http://msdn.microsoft.com/en-us/data/hh237663.aspx