用于stateless session interface状态的NHibernate文档,其中包括:



我找不到对此的解释。 “数据混叠效应”是什么意思?

如果可以举个例子... that'd be great

最佳答案

考虑下面的例子

table Orders
id | customer_id | quantity
---------------------------
1  | 1           | 5
2  | 1           | 20


var orders = statelessSession.Query<Oders>().ToList();
orders[0].Customer.HasDiscount = true;
Assert.False(orders[0].Customer == orders[1].Customer);
Assert.False(orders[1].Customer.HasDiscount);

// while

var orders = session.Query<Oders>().ToList();
orders[0].Customer.HasDiscount = true;
Assert.True(orders[1].Customer.HasDiscount);

因此,使用无状态 session 的客户不是同一实例,因此无法在应有的位置看到更新,并且ReferenceEquals将返回false。您有同一客户的两个别名

关于NHibernate无状态 session -数据别名的作用是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18014647/

10-13 01:02