【问题标题】:Can NHibernate Criteria Pull From CacheNHibernate Criteria 可以从缓存中拉取吗
【发布时间】:2010-11-09 20:24:06
【问题描述】:

我正在使用 NHibernate 将大量数据加载到数据库中。在插入时,我想检查重复项。

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

有没有办法在不刷新的情况下查询此会话的重复项?

【问题讨论】:

    标签: c# .net nhibernate session duplicates


    【解决方案1】:

    也许您应该尝试将 nhibernate 与 Spring.NET 集成,以允许 Spring.NET 通过创建 DAO 支持来处理会话。希望这会有所帮助! http://www.springframework.net/docs/1.1-RC2/reference/html/dao.html

    【讨论】:

      【解决方案2】:

      您可以编写自定义拦截器,它为您提供具有以下签名的 onsave 方法 public override bool OnLoad(object entity, object id, object[] state, string[] propertyNames, IType[] types)

      那么你可以在这个方法里面有重复的检查逻辑。 (即保留该类型已存在的所有 id 的字典)

      或者,您可以在 ISaveEventListner 的自定义实现中直接连接您的重复检查代码。 您需要在配置 nhibernate 时注册您的自定义事件监听器。这是参考的sn-p

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

      【讨论】:

      • 既然我已经解决了这个问题,我没有办法验证这是否正确。如果有人可以验证它,那么我会接受答案。
      猜你喜欢
      • 2021-10-08
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      相关资源
      最近更新 更多