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

时间:2015-05-27 10:52:06

标签: c#

初学者问题。

我的应用程序中有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)

我想知道后来有什么好处。

2 个答案:

答案 0 :(得分:4)

后者明确定义了与DAL的使用者签订的合同,因此他们不必猜测数据表中的内容,它是Customer类内容中的固有内容。此外,它隐藏了数据访问层类背后的数据访问问题,因此消费者只需处理纯列表和对象,而不是与数据访问相关的任何内容。

答案 1 :(得分:2)

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

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

如果您使用特定的数据库库,因为您需要模拟它或使用其他深奥的技术,测试对于基本的纯数据结构和痛苦都是轻而易举的。