私はNHibernateでどのようにFlush
(とNHibernate.ISession
)が動作するのか混乱しています。NHibernateフラッシュ - どのように動作するのですか?
私のコードでは、ISession.Save(entity)
を使ってオブジェクトを保存したときに、そのオブジェクトをデータベースに直接保存することができたようです。
しかし、私は更新しISession.SaveOrUpdate(entity)
またはISession.Update(entity)
を使用してオブジェクト際に、データベース内のオブジェクトが更新されない---私はそれを更新するためにISession.Flush
を呼び出す必要があります。次のように
私はオブジェクトを更新する方法についての手順は次のとおりです。
ISession.Get(typeof(T), id)
- 変更にオブジェクトのプロパティを使用して、データベースからオブジェクトを取得し、例えば、
myCar.Color="Green"
- は戻って、それをコミットデータベースを使用して
ISession.Update(myCar)
myCar
はデータベースに更新されていません。しかし、後でISession.Flush
と呼ぶと、更新されます。
Flush
を使用する場合、使用しない場合は?
[NHibernate ISession Flushの可能な場所:いつ、いつ、いつ、そしていつ?](http://stackoverflow.com/questions/43320/nhibernate-isession-flush-where-and-when-to -use-it-and-why) – sleske