1
我有一个类的用户,它有一个属性事件,其中有许多会话。基本上,用户注册一个有多个会话小时的事件。nhibernate(或休眠)有条件级联
用户可以注册一个事件,但会话时间是纯粹的信息。
但是,当我使用NH将数据写入数据库时,它也会更新会话时间。如何知道在创建/更新事件时仍需要插入/更新会话时间,才能防止这种情况发生。
我有一个类的用户,它有一个属性事件,其中有许多会话。基本上,用户注册一个有多个会话小时的事件。nhibernate(或休眠)有条件级联
用户可以注册一个事件,但会话时间是纯粹的信息。
但是,当我使用NH将数据写入数据库时,它也会更新会话时间。如何知道在创建/更新事件时仍需要插入/更新会话时间,才能防止这种情况发生。
这可能不完全适用于您的问题,但我有问题想根据特定业务规则有条件地级联删除。
很多时候,你可以在你的持久性逻辑中处理这个问题。我遇到了一个与NHibernate Event Listeners一起使用的案例。
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();
}
}
}
}
有几个问题: 用户有事件作为属性?用户只能注册一个事件?会话 - 用户是否与会话相关联,或只与该事件相关联? – bzarah 2011-01-13 17:49:46
向我们展示映射您的实体和您调用的代码以填充和保存用户/事件/会话的代码也非常有帮助 – bzarah 2011-01-13 18:00:00