1

私には、多くのセッションを持つプロパティEventを持つクラスUserがあります。基本的に、ユーザーはセッション時間が長いイベントに登録します。

ユーザーはイベントに登録できますが、セッション時間は純粋に有益です。

しかし、NHを使用してデータベースにユーザーを書き込むと、セッション時間も更新されます。イベントを作成/更新するときにセッション時間を挿入/更新する必要があることを知っているので、どうすればそれを防ぐことができますか。

4

1 に答える 1

0

これはあなたの質問に完全には当てはまらないかもしれませんが、特定のビジネスルールに基づいて条件付きで削除をカスケードしたいという問題がありました。

多くの場合、これは永続ロジックで処理できます。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(); 
                }
            }
        }
    }
于 2011-04-22T19:00:42.673 に答える