NHibernate 如何实现变更跟踪?

2023-11-24

nhibernate 代理是否做了任何聪明的工作来提高更改跟踪的效率?或者它只支持实体框架所谓的基于快照的更改跟踪?


它是基于快照的。

加载实体时,其状态作为 object[] 存储在会话中。

刷新时,当前状态会转换为 object[] 并与原始状态进行比较,以确定哪些属性是脏的。

出于多种原因,这更加有效。其中之一是你不need跟踪更改的代理。另一个问题是,如果将属性设置为不同的值然后将其恢复,则该实体将被视为非脏实体,从而避免不必要的数据库调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NHibernate 如何实现变更跟踪? 的相关文章

  • NHibernate - 左连接

    我有以下两个表 JobsAreaID JobNo 复合键 Logs日志ID 区域ID 作业编号 我需要获取所有没有与之关联的日志的作业 在 SQL 中我可以这样做 SELECT Jobs AreaID Jobs JobNo FROM Job
  • Linq to NHibernate 生成到同一个表的多个联接

    当我在 select 和 where 子句中引用同一个表时 linq to Nhibernate 会生成两个连接 一个用于 select 一个用于 where IE from child in Session Query
  • NHibernate / ActiveRecord:如何在不获取整个对象的情况下设置外键?

    假设我有以下 ActiveRecord 类 ActiveRecord public class Account BelongsTo CustomerId public Customer Customer get set 目前 要设置 Cus
  • ORM 是用于迁移数据的正确工具吗?

    背景 我们正在升级旧版导入工具 它的作用是将数据从连接到 SQL Server 的一个数据库移动到同一服务器上的第二个数据库 并使用不同的模式沿途执行转换和映射 这是一个帮助解释正在发生的事情的示例 假设源数据库有一张表名为Client I
  • 超时设置为无限时间时出现超时异常

    在我的 C NET 3 5 应用程序中 我使用 CastleProject ActiveRecord 而不是 NHibernate 这是使用 MS SQL Server 2008 的桌面应用程序 我已将 ADO 命令超时设置为 0 以防止批
  • 抽象 NHibernate 标准是否有价值?

    我对 NHibernate 相当陌生 我见过的大多数示例都在基础上添加了一些抽象层Criterion or DetachedCriterion类 在简单的情况下 它是某种Query类可能看起来像这样 public class Query
  • 为什么 NHibernate 在选择时删除然后插入复合元素?

    有人可以向我解释一下关于 NHibernate 如何处理复合元素的这个小谜团吗 我的课程看起来像这样 public class Blog public virtual int Id get private set public virtua
  • Nhibernate:2 列总和的限制

    我可以使用 HNibernate Criteria 创建此 sql 查询吗 从表 1 中选择 其中列 1 gt 列 2 列 3 所有 3 列都是 int32 谢谢 好吧 在第 n 次阅读了这个问题的问题后 我决定编写一个不包括编写 SQL
  • 使用二级缓存时,nhibernate 查询缓存和实体缓存有什么区别?

    我正在尝试设置 nhibernate 二级缓存我在这篇文章中看到 http www gitshah com 2012 03 nhibernate and caching part 2 html我想了解查询缓存和实体缓存之间的区别 它说你需要
  • 存储库本身通常不经过测试?

    抱歉 我对存储库模式 单元测试和 orm 工具还不熟悉 我一直在研究单元测试和存储库模式 并得出一些结论 我想知道我是否正确 存储库模式有助于在使用它的控制器中替换单元测试 例如 对吧 因为创建上下文 在 EF 中 或会话 在 NH 中 的
  • 每个会话的 Nhibernate 会话示例

    您好 nhibernate 的一些专业人士能给我每个会话的 Nhibernate 会话实现示例还是 unhaddins 实现吗 或者解释如何做到这一点 此致 恩迪斯 我使用 NHibernate 工作了 4 年 此前我曾与 每次操作打开会话
  • 如何让 NHibernate 缓存获取的子集合?

    我有一个相当简单的条件查询来获取子集合 如下所示 var order Session CreateCriteria
  • NHibernate 忽略长度属性

    运行 SQL Profiler 后 我意识到 NHibernate 正在将字符串映射到nvarchar 4000 我通过指定修复了它type AnsiString and length 在 hbm 文件中 现在正在生成varchar 800
  • NHibernate 具有多个数据库和事务

    我们在理解如何最好地使用 NHibernate 时遇到了一些问题 我们通常拥有相对大量 就表数量而言 的 SQL Server 数据库 而不是一个包含大量对象的数据库 我们正在研究处理多个会话工厂的各种选项 并且可能已经控制住了这一点 但是
  • 自定义字符串查询操作的 Linq to NHibernate 可扩展性?

    我希望能够在 NHibernate Linq 表达式中使用自定义字符串查询 举例来说 这只是一个例子 我希望能够选择包含属性的实体 该属性是特定字符串的字谜 var myEntities EntityRepository AllEntiti
  • NHibernate 获取 & 字符串 Id

    我在 NHibernate 上有一个分配了字符串 Id 的实体 并且在通过 Id 获取实体时遇到了一些问题 例子 假设有这样的数据库记录 Id Description AAA MyDescription 现在 如果我使用搜索 ID aaa
  • 为什么我的 NHibernate 包集合没有动态设置子项的“父 ID”?

    我有一个新对象 其中包含一些作为 IList 属性的新对象的集合 我通过sql探查器看到正在执行两个插入查询 一个用于父级 它具有新的guid id 另一个用于子级 但是 引用父级的子级上的外键是一个空guid 这是我在父级上的映射
  • NHibernate:将 ICriteria 转换为 DetachedCriteria

    任何人都知道如何将 ICriteria 转换为 DetachedCriteria 我需要使用现有的 ICriteria 作为子查询的一部分 使用 Add Subqueries PropertyIn Name myDetachedCriter
  • 如何使用 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
  • 是否可以在不改变作为框架一部分的 DDD 模型的情况下使用 NHibernate

    我挖掘了很多关于DDD方法 无处不在的语言 聚合 存储库等 我认为 与我读到的很多内容相反 实体应该有行为而不是不可知论 我看到的所有例子都倾向于呈现实体虚拟自动属性 and an 空构造函数 受保护或最糟糕的是公开 就是这样 我认为这种对

随机推荐

  • 将单键字典列表转换为单个字典

    我有一个单键字典列表 例如 lst 1 A 2 B 3 C 我想简单地将其转换为普通字典 dictionary 1 A 2 B 3 C 最简洁 最有效的方法是什么 您可以使用减少 reduce lambda r d r update d o
  • 将 Winform 应用程序转换为控制台应用程序

    是否有一种快速而肮脏的方法 或 VS 宏 将 WinForms 应用程序转换为控制台应用程序 我有许多此类应用程序不再需要作为 Winforms 应用程序 我想我可以创建一堆新项目并复制粘贴模块和类 但如果只是删除我拥有的单一表单并编辑 删
  • 从URL中获取参数值

    我正在开发一个工具 它可以获取 URL 中的值参数并用它们做一些事情 我的问题是 我似乎无法使用 document location 来显示我想要的具体值 例如 www examplesite com yourname gilgilad 我
  • 在android布局中创建水平虚线

    在我的布局中 我试图绘制一条虚线 为了绘制一条水平线 我在布局文件中定义了一个视图
  • 优化 Karatsuba 实施

    所以 我正在尝试改进 net 4 的一些操作BigInteger类提供 因为操作看起来是二次的 我已经做了一个粗略的 Karatsuba 实现 但它仍然比我预期的要慢 主要问题似乎是 BigInteger 没有提供简单的方法来计算位数 因此
  • 通过 Java 应用程序启动外部 Jar

    目前 我有一个 Java 独立 Swing 应用程序 现在 当用户单击 Swing 应用程序中的按钮时 我想启动另一个 Java 应用程序 例如 calculator jar 我可以知道什么是便携式方法吗 那么它可以在多个操作系统中工作吗
  • 在 MATLAB 中将零对角线添加到矩阵

    假设我有一个矩阵A维度的Nx N 1 在 MATLAB 中 例如 N 5 A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 我想转型A进入一个NxN matrix B 只需添加零对角线
  • 关于链表中的虚拟节点和指针的说明

    我有以下列表节点类 def init self x self val x self next None 如果我初始化列表l and r如下 l ListNode 1 l next ListNode 4 l next next ListNod
  • 使用 pymongo 连接到 aws 时出现 ServerSelectionTimeoutError

    我正在尝试使用密钥文件连接到 AWS 实例上托管的 MongoDB 我能够通过 ssh 进入实例并连接到数据库 没有任何问题 当我尝试使用 pymongo 从远程位置连接到数据库时 我收到此错误 ServerSelectionTimeout
  • Ipython、jupyter 和内核之间有什么关系?

    就像每次我寻找有关 python 或 R 的答案时 我都会遇到 Ipython Ipython kernel Ipython Notebook jupyter 和 jupyter kernel 的这些含义 并且我实际上了解每个的用途 但我对
  • 如何修复 Heroku imagecreatefromjpeg()

    heroku 报告我一个错误 Call to undefined function imagecreatefromjpeg at line 177 其中第 177 行是 案例 jpg 案例 jpeg image data imagecrea
  • Python如何获取QLineEdit文本?

    你好世界我正在尝试让 QLineEdit 作为用户输入来工作 他们应该输入歌曲名称 输入歌曲名称后 我希望单击播放按钮后开始播放该歌曲 除了他们可以在该文件夹中输入所需歌曲的部分之外 一切正常 问题是我不确定如何制作 QlineEdit 单
  • 使用指针算术计算类型大小的替代方法

    下面的代码是100 可移植的吗 int a 10 size t size of int char a 1 char a No problem here std cout lt
  • 两个表的索引名称相同

    我正在为我们的团队构建一个小型 Mysql 数据库 对于我的数据库中的两个表 我使用了相同的索引名称 性能会受到影响吗 我做了一些测试查询 800 000 多行 到目前为止 一切顺利 索引名称特定于每个表 一张表中不能有两个同名索引 但可以
  • 如何在 Scala 中定义列表的列表?

    我想为以下类型创建一个存储 List List 2 3 1 1 List 2 2 1 但如果我执行以下操作 var y List List 1 0 2 2 List 2 1 1 2 1 然后它创建为 List AnyVal 并在我尝试执行数
  • Boost Python 中的跨模块依赖

    假设我有两个 boost python 模块 定义如下 模块A class SomeClass public SomeClass SomeClass BOOST PYTHON MODULE A class
  • 如何模拟按下按钮?

    我想测试一些表格 有没有办法模拟按下 确定 或 取消 按钮 以便按下该按钮并触发与其关联的事件处理程序 最简洁的方法是调用按钮的 Click 方法 由于以下原因 这比替代方案更好 您可以读取 OnClick 属性 检查它是否为 nil 然后
  • 编写 Maven 插件/Mojo:如何让一个目标强制执行其他目标?

    注意 此线程是关于编写自定义 Mojo 而不是使用插件 我维持一个测试插件对于马文来说 不幸的是 近一年来 我一直让这种特殊的未知挥之不去 我真的很想知道如何处理它 以便其用户可以拥有更简单的配置 假设我们的插件有两个目标 prepare
  • 应用程序作用域 bean 中的实用方法

    您认为将所有广泛使用的实用程序方法放在应用程序范围的 bean 中是一个好主意吗 在我正在开发的应用程序的当前实现中 所有实用方法 使用字符串 cookie 进行操作 检查 url 检查用户所在的当前页面等 都放在一个大请求作用域 bean
  • NHibernate 如何实现变更跟踪?

    nhibernate 代理是否做了任何聪明的工作来提高更改跟踪的效率 或者它只支持实体框架所谓的基于快照的更改跟踪 它是基于快照的 加载实体时 其状态作为 object 存储在会话中 刷新时 当前状态会转换为 object 并与原始状态进行