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()。 } } }
あなたがトランザクション中に例外をスローし、赤い印のステートメントを追加しない場合、データベースは、データを変更します