NHibernate的:填充只有FK在数据库相关的未提交的数据列表(NHibernate: popu

2019-10-29 15:15发布

这是一个阐述和澄清这个问题 。

假设我有两个表, FooBar

Bar有FK到Foo

在应用中,该表由类代表和Foo拥有的清单Bar秒。 Bar有针对的id属性Foo它有一个FK在数据库中。

在上下文SessionTransactionIsolationLevel.ReadUncommitted ,我的一个实例添加Foo到数据库,生成的ID分配给Foo_id实例的属性Bar ,并把它添加到数据库中。

现在,打电话之前 Transaction.Commit()是有可能有NHibernate的读取Foo与列表Bar从数据库中? 也就是说,读取未提交的数据?

我已经创建了证明这是一个VS2012项目 。 它包括建设所需要的数据库SSDT项目,并有测试结果,显示了我问。

谢谢。

Answer 1:

在同一事务的上下文中,您可以读回你对数据库进行,所以是所有变化。 事务隔离级别不要紧,该事务中所做的更改。

当然,NHibernate通常不会更新已加载的对象。 但是,如果你的flush(),其次是无论是清除()或逐出(),然后再次读取美孚,它集将包括酒吧的实例。 (只要你在同一个会议上,提交事务无关,这一点,除了使用默认设置的commit()会自动调用刷新())。



文章来源: NHibernate: populate list with uncommitted data related only by FK in database