有两个实体,在业务逻辑层做update操作,现在需要保证对这两个实体的操作要么全成功要么全失败。在不改动数据访问层的情况下,可能实现这样的事务处理吗?怎么做?
谢谢大家了:)

解决方案 »

  1.   

    你的意思是你的数据访问层不支持事物?
    那就用两个try来做,先把select出来的值记住,然后try{update}一个,如果成功继续try{update}另一个,如果失败就还原第一个
      

  2.   

    楼主的意思是在业务层实现事务,因为数据访问层没法修改。
    5楼的方法可以参考。
    你也可以考虑用强类型的dataset来实现(我没用过这种方式)。
      

  3.   

    网上用dataset批量更新的方法有很多。
      

  4.   

    那是两个实体,你要对谁操作submit和rollback,很喜欢请两星的大侠看清问题再做回答,谢谢。
    两个try?似乎不是我要问的,我需要任何一个entity出了问题不能submit的时候另一个也不会submit。
    再解释一下:我们平时对事务的操作最长用的应用就是两个表同事插入数据了,要么两个table全部insert要么都不insert,可以用Transaction的方式来做,一起submit或rollback。我的问题是,我要实现这样的结果,但是我不是对两个表操作,而是两个数据访问层的实体,这两个实体要同事被事务处理。有没有大侠遇到过这样的问题啊?
      

  5.   

    问题解决,分享给大家
    使用【System.Transactions.TransactionScope】类就行了using中的全部操作都会由事务控制。
    谢谢大家的帮忙,重点谢谢五楼的朋友,嘻嘻。