返回类型为数据表或列表- c#

本文关键字:列表 数据表 返回类型 | 更新日期: 2023-09-27 17:50:50

初学者问题

在我的应用程序中有一个DAL类,它具有以下函数

public static Datatable GetCustomers()
public static Datatable GetOrderDetails(int orderId)

有人建议,最好的做法是将返回类型设置为List或类。

就是

public static List<customer> GetCustomers()
 {
    Datatable dt = ...;
    //then loop through the rows in the table and add to List<customer>
 }
public static order GetOrderDetails(int orderId)

我想知道后者的优势是什么

返回类型为数据表或列表- c#

后者显式地为您的DAL的消费者定义了合约,因此他们不必猜测数据表中的内容,它固有于Customer类的内容中。此外,它将数据访问问题隐藏在数据访问层类之后,因此消费者只需处理纯列表和对象,而不是与数据访问相关的任何内容。

当您开发API时,最好使用来自System.Collections.*System.Collections.Generics.*名称空间的类或更好的接口,原因是您将数据访问特定技术抽象为基本数据结构。这些类型更容易从其他语言中使用,或者如果您需要将结果转换为另一种格式,如jsonXML。使用LINQ查询也更容易。

DataTable需要对System.Data程序集的依赖,您可能不想添加,特别是如果您以后决定使用另一个数据库。

测试是一个简单的基本数据结构,如果你使用特定的数据库库,因为你需要模拟它或使用其他深奥的技术,这是痛苦的。