NHibernate 缓存问题 - 何时调用 Evict?

2023-12-31

我遇到了一个明显的缓存问题,NHibernate 返回的内容与数据库中的内容不匹配。

我相信这是二级缓存数据。看起来我可以使用 Evict 来做到这一点,但是什么时候应该实际调用 Evict 方法?对于我的特定应用程序,数据对于用户来说是唯一的,并且提供的数据很可能只会使用一次*。

我可以完全禁用这些对象集的二级缓存吗?

更新 10/31

我的场景是这样的:我有一个购物车,客户将在其中添加和删除商品。我正在做的事情如下:在处理购物车的更新之前,我逐出Cart and CartProduct实体。完成此操作后,我检索列表CartProducts来自提供者并返回视图(这发生在 .NET MVC 控制器中)。

更新11/3

购物车已经完成了,我遇到了一个似乎与同一个 NHibernate 问题相关的问题,但实际上是一个 MVC 问题。更深入的挖掘表明,HTML Helper 扩展覆盖了我假设的值,并替换为模型状态中的值。所以这对我来说是双重打击。希望这对某人有帮助。


不可以,您无法禁用某些实体的缓存。

您确实有多种选择:

  1. Use ISession.Clear() to clear all entities from NHibernate's cache.
    • http://nhibernate.info/doc/nh/en/index.html#performance-sessioncache http://nhibernate.info/doc/nh/en/index.html#performance-sessioncache
  2. Use ISession.Evict( obj ) to clear a specific entity from the cache.
    • http://nhibernate.info/doc/nh/en/index.html#performance-sessioncache http://nhibernate.info/doc/nh/en/index.html#performance-sessioncache
  3. Use ISessionFactory.Evict( typeof( obj ) ) to evict all entities/objects of a particular type from the cache. This would be the closest to what you are wanting in my opinion.
    • http://nhibernate.info/doc/nh/en/index.html#performance-sessioncache http://nhibernate.info/doc/nh/en/index.html#performance-sessioncache
  4. Use the IStatelessSession to fetch the objects/entities from the database as this completely bypasses all caches.
    • http://nhibernate.info/doc/nh/en/index.html#batch-statelesssession http://nhibernate.info/doc/nh/en/index.html#batch-statelesssession
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NHibernate 缓存问题 - 何时调用 Evict? 的相关文章

  • 如何使用 NHibernate 标准来做到这一点

    假设我有 2 张桌子 表1 a b 和表2 c a 我需要做这样的事情 但符合 NHibernate 标准 select a b select count from table2 t2 where t1 a t2 a x from tabl
  • asp.net mvc html 属性没有值

    我正在尝试根据 HTML5 规范创建一个隐藏表单 其中隐藏属性在没有值的情况下使用 现在我不知道如何将其强制到 asp net mvc 中 上面的方法不能编译 Compiler Error Message CS0103 The name h
  • 将 Expression> 转换为 Expression>

    确实很简单的问题 我有显示 Nullable Bool 的 MVC 视图 例如 Html CheckBoxFor model gt model NullableBoolHere Model NullableBoolHere 我想创建一个新的
  • 在操作之外执行异步操作 asp.net mvc

    我希望能够在每个请求上从云数据库加载用户 并使用 asp net mvc 在控制器中的请求上提供该用户 问题是当前框架不支持从操作过滤器执行异步操作 所以 OnActionExecuting OnAuthorization 方法不允许我这样
  • 相对于路径匹配路由

    我想要任何以以下结尾的网址 templates filename 使用路由属性映射到特定控制器 例如 public class TemplateController Controller Route templates templateFi
  • 使用redis进行树形数据结构

    我需要为基于树的键值开发一个缓存系统 与Windows注册表编辑器非常相似 其中缓存键是字符串 表示树中到值的路径 可以是原始类型 int string bool double 等 或子树本身 例如 key root x y z w val
  • ASP MVC:服务应该返回 IQueryable 的吗?

    你怎么认为 你的 DAO 应该返回一个 IQueryable 以便在你的控制器中使用它吗 不 您的控制器根本不应该处理任何复杂的逻辑 保持苗条身材 模型 而不是 DAO 应该将控制器返回给视图所需的所有内容 我认为在控制器类中看到查询 甚至
  • 流畅的 Nhibernate AutoMapping 继承和忽略抽象属性

    我有一个已成功映射的继承结构 产品 基础 PdfProduct 继承自Product 和OtherProduct 继承自Product 这些工作正常 我之前用 hbm xml 文件做过类似的事情 在上一个项目中 当我试图找出产品是什么类型时
  • 会话过期时将部分视图重定向到登录页面

    是否有一种简单的方法可以在会话过期后将整个页面 而不仅仅是部分视图 重定向到登录页面 我已尝试以下解决方案 但无法使其工作 Net MVC Partial View 会话过期时加载登录页面 https stackoverflow com q
  • 临时数据持久化

    我一直在与TempData最近面临一个令人困惑的案例 假设TempData在以下操作中创建 public ActionResult MyAction1 myTempData TempData myTempData 预计将在以下 Action
  • asp.net mvc 文件流结果

    问题的第一部分 我在数据库中有信息 我想从数据库获取它并将其另存为 txt文件给客户端 我已经用常规的 asp net 完成了它 但在mvc中还没有 我的信息不是图像 这些关于人民的信息 我看着这个网站 http www mikesdotn
  • 在 ASP.NET MVC 中将模型从视图传递到控制器

    我正在 ASP NET MVC 中开发我的第一个应用程序 但遇到了一个我无法解决的问题 即使在阅读了整个互联网之后也是如此 因此 我有几个使用视图模型创建的视图 它们是报告 这些视图模型是根据用户选择标准填充的 我正在尝试构建一种接受模型并
  • 在 MVC 4 中的另一个表单中验证 JQuery UI 模式表单

    我在 MVC 4 中有一个表单 其中包含多个字段 根据组合的值 我需要打开一个模式对话框表单并加载到这 3 个附加字段中 这些字段将影响我正在创建的同一实体 在主窗体中进行编辑 对于这个模式对话框 我使用的是 jQuery UI 中的对话框
  • 以字符串数组作为参数的操作

    我想调用与此 uri 类似的操作 http server controller action columns firstname columns lastname columns age 并像这样使用它 public ActionResul
  • 通过 HTML 或 JavaScript 禁用 Web 表单上的自动填充?

    有没有办法通过 HTML 或 JavaScript 禁用 Chrome 和其他浏览器中表单字段的自动填充 我不希望浏览器自动填写该浏览器以前用户的表单上的答案 我知道我可以清除缓存 但我不能依赖重复清除缓存 您可以在 HTML 的输入级别添
  • asp.net mvc jquery 下拉验证

    我如何使用不显眼的 javascript 验证下拉列表 作为所需验证器的验证文本框 但它不适用于下拉列表 需要更改不显眼的 js 文件吗 或者还有其他选项来验证下拉列表吗 我想在我的 javascript 中检查 form validate
  • 如何强制刷新 CallLog.Calls.CACHED_NAME 列?

    我的目标是从通话记录中收集所有未知的电话号码 这可以通过以下代码来实现 private static final String CALLOG PROJECTION CallLog Calls ID CallLog Calls CACHED
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 当Model和ViewModel一模一样的时候怎么办?

    我想知道什么是最佳实践 我被告知要始终创建 ViewModel 并且永远不要使用核心模型类将数据传递到视图 这就说得通了 让我把事情分开 但什么是Model 和ViewModel一模一样 我应该重新创建另一个类还是只是使用它 我觉得我应该重

随机推荐

  • Condor 输出文件更新

    我正在使用 Condor 运行几次模拟 并对程序进行编码 以便它在控制台中输出进度状态 这是在循环结束时完成的 它只是打印当前时间 也可以是百分比或经过的时间 代码看起来像这样 printf START while programNeeds
  • Bootstrap CSS 隐藏导航栏下方容器的一部分 navbar-fixed-top

    我正在使用 Bootstrap 构建一个项目 但遇到了一个小问题 我在导航顶部下方有一个容器 我的问题是容器的某些部分隐藏在导航顶部标题下方 我不想在容器中使用顶部边距 请参阅下面的 HTML 我在其中遇到了问题 div class div
  • java中使用SimpleDateFormat进行时间格式化

    我的要求是以 hh mm 格式在网页上显示日期 但是 如果小时值是 1 位数字 则不应在小时值之前显示零 例如 应显示为 上午 11 30 上午 9 15 下午 1 00 我试图解决这个问题 但这里唯一的问题是从 1 位数小时值中删除多余的
  • 如何使用 XDocument 打印

    使用 ToString 方法时 有什么方法可以让 XDocument 打印 xml 版本吗 让它输出类似这样的内容
  • Grafana 仪表板根据变量值显示/隐藏行

    因此 我有一个 Grafana 仪表板来显示主机内运行的各种服务的日志 现在 我对不同的服务有不同的行 因为指标和标题是特定于服务的 例如对于 Apache 服务 我们有基于 HTTP 状态代码的日志指标 对于 Oracle 数据库服务 我
  • 如何在 Google Cloud Function 上检查经过身份验证的用户

    我正在构建一个网站 并决定使用纯 HTML JS 和完整的 Firebase 这样我就不必实现后端系统来测试新想法 这个问题的用例是所有用户都应该经过身份验证才能访问页面 相当标准的安全功能 对吧 为了实现这一目标 我利用 Google C
  • Javascript 代码:使用下拉 HTML 动态更改货币

    我一整天都在寻找这个 当从下拉菜单中选择国家或货币时 在整个页面上更改货币 我基本上需要的是一个显示国家或货币的下拉菜单 当您选择其中任何一个 例如美元 时 整个页面的所有价格都会更改为美元 现在 如果您更改 AUD CAD PKR 等 它
  • 如何在绘制之前知道小部件的大小?

    我正在尝试使用AnimatedContainer仅用于扩展效果的简单动画 类似于ExpandableTile 当用户按下它时 我的问题是这个容器在展开时可以有 10 0 高度或 1000 0 它必须是动态的 好的 要为其制作动画 它需要事先
  • 检查输入是否在两个值之间(多个条件)

    我正在制作一个项目 我需要读取不同格式的数字 并根据用户输入检查这些数字 在某些情况下 这将是一个像 8800 9000 这样的区间 在某些情况下 它将是一个 4 位数字 在某些情况下 它将是一个 5 位数字 该数组如下所示 var tes
  • ASP.NET MVC DropDownListFor 不从模型中选择值

    我正在使用 ASP NET MVC 3 并且刚刚使用DropDownListForHTML 帮助器 我在我的控制器中执行此操作 ViewBag ShippingTypes this SelectListDataRepository GetS
  • 子进程不创建 ffmpeg 命令的输出文件

    我正在尝试运行一个 ffmpeg 命令来记录我的屏幕并在 python 中创建一个 mp4 记录文件 当我在 shell 中运行该命令时 该命令有效 但当我使用子进程在 Python 脚本中运行该命令时 该命令不起作用 问题是 当使用子进程
  • 将字符编码映射到每个字符的最大字节数

    我正在寻找一个表 将给定的字符编码映射到每个字符的最大字节数 在可变长度编码的情况下 对于固定宽度编码 这很容易 尽管我不知道 在一些更深奥的编码的情况下 宽度是多少 对于 UTF 8 等 最好确定每个字符的最大字节数取决于在字符串中的最高
  • 仅基于表的一列消除重复值

    我的查询 SELECT sites siteName sites siteIP history date FROM sites INNER JOIN history ON sites siteName history siteName OR
  • 最小化代码,因为我使用相同的代码,仅 p 标签中的内容发生变化,组件 Accordion Header 标头发生变化

    我是js新手 我需要显示 6 个滑块 我单击时的每个 div 都应打开其相应的内容 当我再次单击 div 时 内容应该关闭 就像手风琴一样 正确知道它的工作原理 但如何最小化代码 因为我使用相同的代码 只有 p 标签中的内容发生变化 组件
  • CSS 不透明度属性?

    我真的需要所有这些 CSS 不透明度属性吗 我不会同时使用所有这些 而是 以不同的百分比显示它们 但我通常有 4 人一组 我想看看是否可以从样式表中删除任何内容 有人能给我举个 100 25 和 0 的例子吗 我想确保我正确地完成了它们 o
  • iOS5中如何获取默认的LandscapeLeft方向?

    抱歉 如果这个问题重复 但我找不到相同的解决方案 在 iOS6 中 如果我想为一个 UIViewController 设置默认方向 我只需使用 BOOL shouldAutorotate return YES NSUInteger supp
  • 带有 FileField 的 Django 模型——动态“upload_to”参数

    我使用带有 FileField 的模型来处理文件上传 现在文件就可以成功上传了 不过 我还想做一个小改进 那就是为用户创建用户名的文件夹 这是我尝试过的代码 class UserFiles models Model user models
  • 找不到“FacebookSDK/FacebookSDK.h”文件

    我已经安装了最新版本PhoneGap Facebook 插件 https github com phonegap phonegap facebook plugin但是当我构建项目时 我收到以下错误消息 我尝试了 stackoverflow
  • 谷歌地图片段在scrollView内

    所以我一直在尝试使用谷歌地图精简版fragment里面一个scrollView我无法显示地图 删除后scrollView然后将片段单独保留 现在您就可以看到地图了 我只是想了解为什么会这样 以及是否有任何方法可以让这个片段显示在我的滚动视图
  • NHibernate 缓存问题 - 何时调用 Evict?

    我遇到了一个明显的缓存问题 NHibernate 返回的内容与数据库中的内容不匹配 我相信这是二级缓存数据 看起来我可以使用 Evict 来做到这一点 但是什么时候应该实际调用 Evict 方法 对于我的特定应用程序 数据对于用户来说是唯一