SmartPersistenceLayer 3.1 事务处理

此事务处理支持两种机制,一种是使用Add...与Process()的一次性提交机制 另一种是使用Do..与Commit()或RollBack()的实时提交机制 两种机制不能混合使用,即要是使用Process()方式 的,那么只能使用Add的方法 如果是使用Commit()的话,则只能用Do方法,因此在使用时需要注意。

AddDeleteCriteria 在任务中增加一个DeleteCriteria任务
AddDeleteObject 在任务中增加一个Delete任务
AddSaveObject 在任务中增加一个Save任务
AddSqlString 添加SQL的事务处理功能(单数据库) add by tintown
AddUpdateCriteria 在任务中增加一个UpdateCriteria任务
Clear 清除所有加入到事务里的对象
Commit 提交事务
DoDeleteCriteria 已重载。 在事务中执行删除标准操作
DoDeleteObject 已重载。 在事务中执行实体删除操作
DoRetrieveCriteria 在事务中执行RetrieveCriteria查询
DoRetrieveObject 在事务中进行实体查询(在执行后实体本身会被赋上值)
DoSaveObject 已重载。 执行保存对象操作
DoSqlNonQueryString 已重载。 在事务中执行非查询SQL语句
DoSqlQueryString 在事务中执行查询SQL语句
DoUpdateCriteria 已重载。 在事务中执行更新标准操作
Equals (从 Object 继承)
GetHashCode (从 Object 继承)
GetType (从 Object 继承)
Process 事务处理
RollBack 回滚事务
ToString (从 Object 继承)

try{

Transaction t = new Transaction(); //定义事物

RetrieveCriteria rc=new RetrieveCriteria(typeof(StuffStoreEntity));
     Condition cpp = rc.GetNewCondition();
     cpp.AddEqualTo(StuffStoreEntity.__STORAGE_ID,_StoreCheckEntity.Storage_ID.ToString());
        rc.OrderBy(StuffStoreEntity.__STUFFSTORE_ID);

     t.DoRetrieveCriteria(rc);

UpdateCriteria uc=new UpdateCriteria(typeof(StuffStoreEntity));  
     uc. AddAttributeForUpdate(StuffStoreEntity.__STUFFSTORE_COUNT,Convert.ToDecimal(dtDetail.Rows[i]["StoreCheckDetail_CheckWeight"]));
 
     Condition c=uc.GetNewCondition();    
     c.AddEqualTo(StuffStoreEntity.__STUFFSTORE_ID,Convert.ToInt32(dtStore.Rows[0]["StuffStore_ID"]));    
     t.DoUpdateCriteria(uc);

t.Commit();

}

catch(Exception ex)
   {
    t.RollBack();
    throw new Exception(ex.ToString());
   }

原文地址:https://www.cnblogs.com/xh831213/p/330212.html