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:以名称呈现的员工) 。如果我在第二个名称上更改名称,我应该在第一个选项卡中看到这个。