Вопрос

У меня есть пользователь класса, у которого есть мероприятие по недвижимости, которое имеет много сессий. По сути, пользователь регистрируется на мероприятии, в котором много часов сессий.

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

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

Это было полезно?

Решение

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

Во многих случаях вы можете справиться с этим в своей логике настойчивости. У меня был случай, когда я пошел со слушателями событий 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(); 
                }
            }
        }
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top