Realm.Manage更新

时间:2016-10-24 15:58:04

标签: xamarin realm

如何更新Manage Realm对象?

如果我运行两次失败,说该对象已经被管理。我理解异常,但如何在管理对象后更新/删除对象?

        using (var instance2 = Realm.GetInstance())
        {
            using (var transaction = instance2.BeginWrite())
            {
                foreach (var item in items)
                {
                    instance2.Manage(item);
                }
                transaction.Commit();
            }
        }

1 个答案:

答案 0 :(得分:0)

无需再次管理对象。一旦通过调用Manage将其添加到Realm,它就会变成一个“实时”对象 - 您所做的每个更改都将被保留。所以如果你有一份员工清单:

var instance = Realm.GetInstance();
using (var transaction = instance.BeginTransaction())
{
    foreach (var e in employees)
    {
        instance.Manage(e);
    }
    transaction.Commit();
}

然后你想要计算他们的工资,你可以这样做:

using (var transaction2 = instance.BeginTransaction())
{
    foreach (var e in employees)
    {
        e.Salary = CalculateSalary(e);
    }
    transaction2.Commit();
}

如您所见,无需再次调用Manage,您只需在写入事务中设置要更新的任何属性。