2013-08-02 40 views

回答

4

考虑下面的例子

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); 

所以使用无状态会话的客户是不一样的,因此例如更新没有见过,他们应该和的ReferenceEquals将返回false。您有两个相同客户的别名