首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

刷新NHibernate对象

是指将数据库中的最新数据同步到NHibernate对象中,以确保对象的状态与数据库的状态保持一致。这个过程通常发生在以下情况下:

  1. 并发访问:当多个用户同时访问同一个对象时,可能会导致对象的状态与数据库不一致。通过刷新对象,可以确保获取到最新的数据。
  2. 数据库事务:在一个事务中,如果其他事务修改了对象对应的数据库记录,那么在当前事务中的对象就会变得过时。通过刷新对象,可以使其与数据库保持同步。
  3. 缓存同步:NHibernate通常会使用缓存来提高性能。但是,当数据库中的数据发生变化时,缓存中的对象可能不再是最新的。通过刷新对象,可以更新缓存中的对象。

刷新NHibernate对象的方法取决于具体的应用场景和代码实现。一般来说,可以通过以下方式来刷新对象:

  1. 使用session的Refresh方法:NHibernate的Session对象提供了Refresh方法,可以通过传入需要刷新的对象来更新其状态。例如,使用C#语言的NHibernate实现,可以使用以下代码刷新对象:
代码语言:csharp
复制
session.Refresh(obj);
  1. 使用session的Evict和Get方法:Evict方法可以将对象从Session的缓存中移除,然后使用Get方法重新获取对象,从而获取最新的数据。例如:
代码语言:csharp
复制
session.Evict(obj);
var refreshedObj = session.Get(typeof(ObjType), obj.Id);

刷新NHibernate对象可以确保数据的一致性和准确性,但需要注意刷新的时机和频率,以避免性能问题和不必要的数据库访问。在实际应用中,可以根据具体的业务需求和性能要求来决定是否需要刷新对象。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

NHibernate 缓存

NHibernate 缓存 NHibernate 支持两种级别的缓存, 即一级缓存以及二级缓存。...注意最后一句, 明确说明了一级缓存的用途: 在对象树种导航、浏览时, 使用一级缓存; 根据对象的 id 加载对象; 由此可以看出, 一级缓存的作用是比较有限的, 但是也有用得着的地方。...一级缓存测试 一级缓存缓存无需配置, 默认支持, 因此, 在使用 session 查询对象, 如果仅仅是根据 id 加载指定的对象, 需要使用 session 的 Get 或 Load 方法, 这样可以充分利用...注意: 如果查询时不想使用一级缓存, 可以 StatelessSession 对象, 和 Session 对象用法一样, 只是该对象没有一级缓存。...从二级缓存读/写数据 Refresh:向二级缓存写数据,想不从二级缓存读数据,通过在配置文件设置 cache.use_minimal_puts从数据库中读取数据时,强制二级缓存刷新 CacheRegion

60011
  • NHibernate 缓存

    注意最后一句, 明确说明了一级缓存的用途: 在对象树种导航、浏览时, 使用一级缓存; 根据对象的 id 加载对象; 由此可以看出, 一级缓存的作用是比较有限的, 但是也有用得着的地方。...一级缓存测试 一级缓存缓存无需配置, 默认支持, 因此, 在使用 session 查询对象, 如果仅仅是根据 id 加载指定的对象, 需要使用 session 的 Get 或 Load 方法, 这样可以充分利用...注意: 如果查询时不想使用一级缓存, 可以 StatelessSession 对象, 和 Session 对象用法一样, 只是该对象没有一级缓存。...NHibernate.Caches.SharedCache NHibernate.Caches.SysCache NHibernate.Caches.SysCache2 NHibernate.Caches.Velocity...从二级缓存读/写数据 Refresh:向二级缓存写数据,想不从二级缓存读数据,通过在配置文件设置cache.use_minimal_puts从数据库中读取数据时,强制二级缓存刷新 CacheRegion

    44110

    NHibernate教程

    一、NHibernate简介 在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。NHibernate是一个面向.Net环境的对象/关系数据库映射工具。...对象/关系数据库映射(object/relational mapping (ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。...NHibernate除了能将一张表映射为一个对象,还可以将表间关系变为对象的属性。例如学生和课程间的多对多关系就可以转化为学生类中的一个课程集合的属性。...二、NHibernate使用步骤 1.为系统引入NHibernate的库,并且配置NHibernate; 2.新建一个将要持久化.Net对象的表; 3.构建一个需要被持久化的.Net类; 4.构建一个可以让...NHibernate知道如何完成ORM映射的XML文件; 5.使用NHibernate的API来编程 三、NHibernate的使用 1.

    36510

    Fluent NHibernate之旅

    ORM大家都非常熟悉了吧,我相信也有很多朋友正在用自己或者一些公开的框架,而最常用而且强大的,非Hibernate了(Net中为NHibernate),网上的文档非常多,不过在博客园中,介绍NHibernate...,废话不说了,下面就介绍Fluent NHibernate,大家也一起来体验一下Fluent Nhibernate的快感吧。...4、灵活的Fluent 一、初识Fluent NHibernate(简称Fluent) Fluent NHibernate offers an alternative to NHibernate's...因为Fluent是基于NHibernate的,它只实现了NHibernate的Mapping功能,其他功能还不能代替,所以我们的项目中要同时引入NHibernate和FluentNHibernate两个类库...文章写得很烂,也当是笔记吧,NHibernate也是刚刚学,惭愧惭愧,学的不是很彻底,今后也会结合NHibernate的学习一起来说。

    1.1K60

    Nhibernate_juan benet

    什么是NHibernate? NHibernate是一个基于.Net,用于关系数据库的对象持久化类库.它是著名的Hibernate的.Net版本....NHibernate用于把你的.Net对象持久化到底层的关系数据库中.你完全不用自己编写Sql语句去操作这些对象,NH会代替你做.你的代码里面只需要关心这些对象,NH生成sql语句并能为你取到正确的东西...在代码里面使用NHibernate是很简单的事情: 1. 创建一个Configuration对象. 2....Configuration对象知道所有在.Net类和后端数据库之间的映射关系, Configuration cfg = new Configuration(); cfg.AddAssembly(“NHibernate.Demo.QuickStart...创建一个Session对象……. ISession对象代表着一个到后端数据库连接,ITransaction代表一个NHibernate管理的事务(Transaction).

    37250

    NHibernate介绍「建议收藏」

    C#可用以解决对象/关系数据库映射的工具有多种,常见的有EF (Entity Framework)、NHibernate、iBATIS等,各自的优缺点及适用场景在此不做讨论,本文只对如何使用NHibernate...NHibernate是一个面向.NET环境的对象/关系数据库映射工具。 1. 创建项目文件 在Visual Studio开发工具里创建需要的项目结构。 2....相比较而言,有些ORM解决方案需要特殊属性,或者是基于模型对象,这些对象又是从特定的基类中继承而来的。 在NHibernate中不用特殊的修饰就可以让对象和持久化层交互。...创建NHibernate映射文件 Nhibernate使用XML映射文件来映射POCO到数据库对象。虽然在很多案例中这可能是一对一关系,但这并不是必定的。...name表示上面的程序集和命名空间中的类名,table属性告诉NHibernate数据库中的哪个表或者视图将被映射。 id元素告诉NHibernate哪个数据库的字段和对应的对象作为一个唯一键来使用。

    68020

    C#——Nhibernate探索

    一、建立了一个类库程序,引用Iesi.Collections.dll和NHibernate.dll两个DLL。  接下来,我们开始建立持久化对象。...public virtual int Id { get; set; } public virtual string Name { get; set; } } 接下来建立持久化对象与数据库的映射...调查结果: 对象与数据库的映射是保存在XML文件中的,于是我配置XML映射文件如下。 该XML文件的属性,要求设置其生成操作为【嵌入的资源】。 但我怕它丢失,还给他设置了始终复制的属性。...然后,我们建立domain(域),添加对Text持久化对象的增删改查的方法。...我推断,Nherbinate是读这个配置文件,然后到这个程序集里,反射查询那些poco对象。 最后,nhibernate-configuration-2.2这句话我想了很久要不要改成4.0。

    49130

    连贯NHibernate 1.0正式发布

    连贯NHibernate(Fluent NHibernate) 是通过编程方式而不是使用XML配置文件创建NHibernate映射的API。...它的目标是在项目中运用NHibernate时减少所遇到的困难,提供更好的可读性、可测试性和编译时的安全性。...连贯NHibernate降低了复杂性,并进一步加强了约定胜于配置的原则,即任何一个映射的最常用设置是默认的。 除了编译时的检查外连贯NHibernate还为你的映射的测试提供了一个健壮的API。...Wiki上有教程告诉怎么用,园子里的inday的几篇文章可以先看一下: [原创]Fluent NHibernate之旅 [原创]Fluent NHibernate之旅二--Entity Mapping...[原创]Fluent NHibernate之旅(三)—继承 codeproject上也有一篇针对RC的文章:Fluent NHibernate and Linq2NHibernate – Demo Project

    64070
    领券