nhibernate (или hibernate) условное каскадирование - PullRequest
1 голос
/ 13 января 2011

У меня есть класс User, у которого есть свойство Event, которое имеет много сессий.В основном, пользователь регистрируется на событие, которое имеет много часов сеансов.

Пользователь может зарегистрироваться на событие, но часы сеансов являются чисто информативными.

Но когда я записываю пользователя в базу данных с помощью NH, он также обновляет часы сеансов.Как я могу предотвратить это, зная, что мне все еще нужны часы сеансов, которые будут вставлены / обновлены при создании / обновлении события.

1 Ответ

0 голосов
/ 22 апреля 2011

Это может не совсем относиться к вашему вопросу, но у меня были проблемы, когда я хотел условно каскадно удалять на основе определенных бизнес-правил.

Часто вы можете справиться с этим на своем постоянном компьютере.логика.У меня был случай, когда я пошел с прослушивателями событий NHibernate.

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(); 
                }
            }
        }
    }
...