2009-10-29 49 views
0

如何刷新会话的某些部分而不是其他部分?如何保存NHibernate会话中的单个实体或实体而不保存其他脏实体?

例如:

ISessionFactory sessionFactory = CreateSessionFactory(); 
ISession session = sessionFactory.OpenSession(); 
Employee first = session.Get<Employee>(FirstEmployeeId); 
Employee second = session.Get<Employee>(SecondEmployeeId); 
first.Name = "Michael Johnson"; 
second.Name = "Karl Johnson"; 
session.Flush(first); 

发送到数据库:

Update Employee SET FirstName = 'Michael Johnson' where Id = 123; 

这基本上保存了第一个雇员到数据库,但没有第二个。

我试图支持的场景是当你有一个标签式的WPF应用程序,同时打开两个员工并编辑这两个。

我不能支持两个会话,因为我们假设他们之间的交互非常多,以至于如果我对其中的一个进行了更改(例如,员工有ReportTo:以名称呈现的员工) 。如果我在第二个名称上更改名称,我应该在第一个选项卡中看到这个。

回答

1

session.Evict(second)

相关问题