初学者问题。
我的应用程序中有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)
我想知道后来有什么好处。
答案 0 :(得分:4)
后者明确定义了与DAL的使用者签订的合同,因此他们不必猜测数据表中的内容,它是Customer类内容中的固有内容。此外,它隐藏了数据访问层类背后的数据访问问题,因此消费者只需处理纯列表和对象,而不是与数据访问相关的任何内容。
答案 1 :(得分:2)
开发API时,最好使用System.Collections.*
和System.Collections.Generics.*
命名空间中的类或更好的接口,原因是您从数据访问特定技术抽象到基本数据结构。这些类型更容易从其他语言中使用,或者如果您需要将结果转换为其他格式,例如 json 或 XML 。使用LINQ查询它也更容易。
DataTable
需要依赖System.Data
程序集,您可能不想添加它,特别是如果您以后决定使用其他数据库。
如果您使用特定的数据库库,因为您需要模拟它或使用其他深奥的技术,测试对于基本的纯数据结构和痛苦都是轻而易举的。