gpt4 book ai didi

c# - 我如何告诉 NHibernate 只保存更改的属性

转载 作者:太空狗 更新时间:2023-10-29 20:53:22 25 4
gpt4 key购买 nike

我使用 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();
}
}
}

P.S:抱歉我的英语不好

最佳答案

实际上,您可以告诉 NHibernate 使用Dynamic Update 专门更新“脏”字段。

更多信息:http://ayende.com/blog/3946/nhibernate-mapping-concurrency

关于c# - 我如何告诉 NHibernate 只保存更改的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6268249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com