用于查询的无状态NHibernate

用于查询的无状态NHibernate,nhibernate,Nhibernate,我们有一个通过后台进程更新的数据库。我们使用NHibernate查询数据以显示在web UI上,因此不需要更改跟踪或延迟加载 如果我们将所有映射标记为mutable=“false”,这与使用无状态会话相同吗?不,不一样。事实上,它与此完全无关(即,您可以在无状态会话中修改实体) 无状态会话不跟踪实体,当您不需要有状态会话提供的功能时,这会导致性能大幅提高(内存使用和执行时间) 特别是: 没有延迟加载 没有缓存 没有级联 所有更新必须明确(插入/更新/删除) 但是标记mutable=“false

我们有一个通过后台进程更新的数据库。我们使用NHibernate查询数据以显示在web UI上,因此不需要更改跟踪或延迟加载


如果我们将所有映射标记为mutable=“false”,这与使用无状态会话相同吗?

不,不一样。事实上,它与此完全无关(即,您可以在无状态会话中修改实体)

无状态会话不跟踪实体,当您不需要有状态会话提供的功能时,这会导致性能大幅提高(内存使用和执行时间)

特别是:

  • 没有延迟加载
  • 没有缓存
  • 没有级联
  • 所有更新必须明确(插入/更新/删除)

但是标记mutable=“false”是否意味着该实体将不会被跟踪?不,不会。这只意味着它一旦持久化就不会被更新,但这只是一个标志;所有的水管都还在那里。