[英]How to resolve with a exception “Cannot start to manage an object with a realm when it's already managed by another realm”
我在Xamarin项目中使用Realm Mobile Database。 当我使用realm.Add(obj,update)语句时,我遇到了一个问题。 它引发异常“当已经由另一个领域管理的对象时,无法开始管理该对象”。 我在同一演示中的Swift版本上没有看到的内容。 我知道领域对象的IsManage为true的时候,然后将领域中存在的对象添加到另一个对象中以进行更新,然后抛出该异常,因此如何使用成员之前存在的成员来更新领域对象。
var objUpdate = new AccountAccessDB()
{
Id = this.Id, //Id is PrimaryKey
User = this.User // this object existed
};
objUpdate.something.Add(new Object()) // this is that I want to update.
realm.Write(() => {
realm.Add(objUpdate, true);
});
谢谢!
看起来您正在打开不同的领域,然后尝试将一个对象从一个领域添加到另一个领域。
请记住,领域是通过其配置来唯一的,因此,如果在打开领域时通过配置,则在尝试打开同一领域时必须使用相同的配置。
// First time you open realm
var realm = Realm.GetInstance("my.realm");
...
// Somewhere else in your code
var realm = Realm.GetInstance(); // <== This is not the same realm!
var myRealm = Realm.GetInstance("my.realm"); // <== This is the same realm
我最近遇到了同一问题,并设法找到了问题。
就我而言,我正在将大量非托管对象导入Realm。 这些对象中的某些对象具有指向自定义User对象的属性,我是在该对象的构造函数中天真地为其分配的。
自然地,这意味着我试图导入具有指向托管对象的属性的非托管对象(也创建于另一个实例中)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.