私には、多くのセッションを持つプロパティEventを持つクラスUserがあります。基本的に、ユーザーはセッション時間が長いイベントに登録します。
ユーザーはイベントに登録できますが、セッション時間は純粋に有益です。
しかし、NHを使用してデータベースにユーザーを書き込むと、セッション時間も更新されます。イベントを作成/更新するときにセッション時間を挿入/更新する必要があることを知っているので、どうすればそれを防ぐことができますか。
私には、多くのセッションを持つプロパティEventを持つクラスUserがあります。基本的に、ユーザーはセッション時間が長いイベントに登録します。
ユーザーはイベントに登録できますが、セッション時間は純粋に有益です。
しかし、NHを使用してデータベースにユーザーを書き込むと、セッション時間も更新されます。イベントを作成/更新するときにセッション時間を挿入/更新する必要があることを知っているので、どうすればそれを防ぐことができますか。
これはあなたの質問に完全には当てはまらないかもしれませんが、特定のビジネスルールに基づいて条件付きで削除をカスケードしたいという問題がありました。
多くの場合、これは永続ロジックで処理できます。NHibernateEventListenersを使用した場合がありました。
public class ConditionalDeleter: IPostDeleteEventListener
{
public void OnPostDelete(PostDeleteEvent @event)
{
var foo = @event.Entity as Foo;
if (foo != null)
{
if (foo.ShouldDeleteBar)
{
ISession session = @event.Session.GetSession(EntityMode.Poco);
session.Delete(foo.Bar);
session.Flush();
}
}
}
}