我使用NHibernate将大量数据加载到数据库中。当我插入时,我想检查重复项。
我在没有刷新会话的情况下在每个循环中调用saveorupdate。
是否有一种方法可以在不刷新的情况下查询此会话中的重复项?
发布于 2009-07-10 22:34:47
也许您应该尝试将nhibernate与Spring.NET集成,以允许Spring.NET通过创建DAO支持来处理会话。希望这能有所帮助!http://www.springframework.net/docs/1.1-RC2/reference/html/dao.html
发布于 2009-11-02 05:58:48
您可以编写自定义拦截器,它为您提供具有以下签名的onsave方法: public override bool OnLoad(对象实体,对象id,object[]状态,string[] propertyNames,IType[]类型)
然后,您可以在此方法中使用重复的检查逻辑。(例如,通过保留该类型的所有ids的字典)
或者,您可以在自定义的ISaveEventListner实现中直接挂接您的重复检查代码。您需要在配置nhibernate时注册自定义的event listner。下面是ref的代码片段
Configuration cfg = new Configuration();
ISaveEventListener[] stack = new ISaveEventListener[] { new MySaveListener(), new DefaultSaveEventListener() };
cfg.EventListeners.SaveEventListeners = stack;
https://stackoverflow.com/questions/1111733
复制相似问题