如何更新管理领域对象?
如果我运行两次,它就会失败,说明对象已经被管理了。我理解这个异常,但是如何在对象被管理之后更新/删除它呢?
using (var instance2 = Realm.GetInstance())
{
using (var transaction = instance2.BeginWrite())
{
foreach (var item in items)
{
instance2.Manage(item);
}
transaction.Commit();
}
}发布于 2016-10-25 04:31:52
不需要再次管理对象。一旦通过调用Manage将其添加到领域中,它就变成了一个“活动的”对象--您所做的每一次更改都将被持久化。因此,如果您有一份员工列表:
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,您只需设置要在写事务中更新的任何属性。
https://stackoverflow.com/questions/40222706
复制相似问题