我使用 NHibernate 将类 Person 映射到数据库。我从数据库加载对象并将其发送到不同的客户端。第一个客户将修改 Name 和 Country 属性。第二个客户端将只修改 Name 属性。然后两者都将修改后的对象返回给服务器。当我从第一个客户端保存数据时 - 然后正确保存 - 名称和国家/地区都更新了。当我从第二个客户端保存数据时 - 我有问题。它覆盖了第一个客户的数据并保存了国家的新名称和初始值。
我如何告诉 NHibernate 只保存 Name 值而不覆盖 Country 值?
public class Person
{
public string Name { get; set; }
public string Country { get; set; }
}
public static List<Person> GetEntities()
{
var factory = CreateSessionFactory();
using (ISession session = factory.OpenSession())
{
return session.CreateCriteria<Person>().List<Person>();
}
}
public static void SaveEntities(List<Person> entities)
{
var factory = CreateSessionFactory();
using (ISession session = factory.OpenSession())
{
using (var t = session.BeginTransaction())
{
foreach (var person in entities)
{
session.Merge(person);
}
t.Commit();
}
}
}
PS:对不起我的英语不好