17
/// <typeparam name="T"></typeparam>
18 /// <param name="key"></param>
19 /// <returns></returns>
20
public int GetCount<T>(object key)
21 {
22
return 0;
23 }
24
25 /// <summary>
26 /// 返回指定类型的所有对象集合
27 /// </summary>
28 /// <typeparam name="T"></typeparam>
29 /// <returns></returns>
30
public List<T> GetAll<T>()
31 {
32
return new List<T>();
33 }
34 }
再次、数据库访问必须提供事务的管理,可以说不提供事务操作的数据访问层就没有办法使用,因为这样的数据访问层构建的
系统是不安全的。特别是批量持久
化的过程中,事务不但能够减少与数据库操作的次数,而且根据事务的四个特性可以提供更好的安全性。我们来回顾下事务的
四个特性:
我想我这里就不用一一解释了,大家都明白的。我们在数据访问层的设计中是通过引入“工作单元”来实现事务管理的,工作单
元后面会讲述到工作单元内提供的方法及事务性。
最后、数据访问层必须提供处理并发的功能,我们在系统访问的人较多的情况时肯定会出现并发的情况,数据访问层如何处理
这样的情况就显得极其重要了,在一个多用户并发的系统中,通过前面提到的事务来处理,这时候可能就会出现数据库完整性
的问题,例如这样的情况,一个用户现在在编辑自己的个人信息,例如将生日修改为1985年3月20日,这个用户对应的ID是
298,这时候他只是修改了,但是还没有提交,此时管理员也修改了,比如说修改了ID为298的这个用户信息的地址或者其他
信息,并且提交,此时,用户将自己编辑的生日提交了,那么数据库中对应的ID为298的数据信息就会是最新修改的数据信
息,那么之前管理员修改的数据信息就会发生丢失,虽然是修改的可能字段不是同一个字段,这就和我们底层实现的数据访问
层有关,当然如果说我们在数据访问层实现了,只更新修改过的数据列的值的话,那么可能不会存在这样的情况,当然这就和
我们底层实现的数据访问层的机制有关。
下面我们通过图形的方式来说明,更容易理解: