LinQ技术可以使我们专注面向对象设计程序,Master/Detail表之间的交互通过对象关系(嵌套)可以完成,避免写大量SQL复杂语句。其数据验证和业务逻辑验证保证时刻我们的实体对象数据是“干净“的,不像DataRow,而且数据对象是轻量级的,在大量数据网络传输时,网络负载会很小。
如果没有LinQ,我们可以这样访问数据库
public interface IDAL
{
//数据访问接口
Update(DataRow);
Update(Model);
}
public class SQLServerDAL: IDAL
{
//具体数据访问SQL语句
SQLHelper.Excute("select * from student",参数);
}
或也可以这样
public interface DataModelProxy
{
DataModal.HidaKitDataSet.CUSTOMERSDataTable GetCustomers();
DataModal.HidaKitDataSet.CUSTOMERSRow GetCustomerByID(string id);
}
public class ConcreteDataModel:DataModelProxy
{
}
这两种数据访问方法都有各自的优点,但都没有体现对象之间的关系,作多表复杂查询时,仍需大量写SQL语句。
我们要重新写数据验证,每次对数据修改 ,我们无法保证数据完成性