簡體   English   中英

如何異常解決:“如果對象已由另一個領域管理,則無法開始管理該領域的對象”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM