NHibernet事務修正操作、トランザクションはコミットしませんでしたが、データベースのデータ同期(修正)

 

Nhibernetキャッシュ

クエリ実行に関連付けられたデータとキャッシュので、更新後のトランザクションは、データベースがまだ、ソリューション、空のキャッシュを更新し、コミットしなかった場合でも、赤マークされ、次のコードのようにキャッシュ・インスタンスは、関連していません

公共 BOOL UpdateTrainPlanAndPro(TrainPlan trainPlan、リスト<プロ> 長所)
        { 
            ISession SS = NHibernateHelper.FrameworkDataProvider.Instance.GetSession()。
            ITransactionトランス = nullを使用(トランス= ss.BeginTransaction())
            { 
                試み
                { 
                    ss.Update(trainPlan)。
                    VAR proList = Session.CreateCriteria <プロ>()(Expression.Eq(追加。" TID "、trainPlan.Id))を一覧<プロ>。 ();
                    Session.Clear();
                    foreachのVARの項目proList)
                    { 
                        item.StudyHours = trainPlan.TrainHours。
                        item.WorkTypeId = trainPlan.WorkId。
                        ss.Update(アイテム)
                    } 
                    trans.Commit()。
                    返す ; 
                } 
                キャッチ(例外e)
                { 
                    trans.Rollback()。
                    返す ; 
                } 
                最後に
                、{  
                    trans.Dispose()。
                }
            } 
        }

あなたがトランザクション中に例外をスローし、赤い印のステートメントを追加しない場合、データベースは、データを変更します

 

おすすめ

転載: www.cnblogs.com/xiaonangua/p/11576605.html