我正在用NHibernate将很多数据加载到数据库中。在插入时,我想检查重复项。NHibernate标准可以从缓存中提取
我在每次循环中调用saveorupdate而不刷新会话。
有没有办法查询此会议重复没有冲洗?
我正在用NHibernate将很多数据加载到数据库中。在插入时,我想检查重复项。NHibernate标准可以从缓存中提取
我在每次循环中调用saveorupdate而不刷新会话。
有没有办法查询此会议重复没有冲洗?
也许您应该尝试将nhibernate与Spring.NET集成,以允许Spring.NET通过创建DAO支持来处理会话。希望这会有所帮助! http://www.springframework.net/docs/1.1-RC2/reference/html/dao.html
可以编写自定义拦截器,让你使用以下签名 公共覆盖BOOL的OnLoad的OnSave方法(对象实体,对象ID,对象[]状态,串[] propertyNames,ITYPE []类型)
然后你可以在这个方法中有重复的检查逻辑。 (即通过保存所有已存在的类型的字典)
或者,您可以直接在ISaveEventListner的自定义实现中连接重复的检查代码。 您需要在配置nhibernate时注册您的自定义事件列表程序。这里是参考代码片段
Configuration cfg = new Configuration();
ISaveEventListener[] stack = new ISaveEventListener[] { new MySaveListener(), new DefaultSaveEventListener() };
cfg.EventListeners.SaveEventListeners = stack;
由于我已经移过这个问题,我没有办法来验证这是否正确。如果有人可以验证它,那么我会接受答案。 – 2009-11-03 17:45:01