小编gag*_*abu的帖子

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

我有类使用NHibernate映射到数据库的Person.我从DB加载对象并将其发送到不同的客户端.第一个客户端将修改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();
        }
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# nhibernate detach

6
推荐指数
2
解决办法
4472
查看次数

标签 统计

.net ×1

c# ×1

detach ×1

nhibernate ×1