2009-07-10 45 views
0

我正在用NHibernate将很多数据加载到数据库中。在插入时,我想检查重复项。NHibernate标准可以从缓存中提取

我在每次循环中调用saveorupdate而不刷新会话。

有没有办法查询此会议重复没有冲洗?

回答

0

可以编写自定义拦截器,让你使用以下签名 公共覆盖BOOL的OnLoad的OnSave方法(对象实体,对象ID,对象[]状态,串[] propertyNames,ITYPE []类型)

然后你可以在这个方法中有重复的检查逻辑。 (即通过保存所有已存在的类型的字典)

或者,您可以直接在ISaveEventListner的自定义实现中连接重复的检查代码。 您需要在配置nhibernate时注册您的自定义事件列表程序。这里是参考代码片段

Configuration cfg = new Configuration(); 
ISaveEventListener[] stack = new ISaveEventListener[] { new MySaveListener(), new DefaultSaveEventListener() }; 
cfg.EventListeners.SaveEventListeners = stack; 
+0

由于我已经移过这个问题,我没有办法来验证这是否正确。如果有人可以验证它,那么我会接受答案。 – 2009-11-03 17:45:01