【发布时间】:2017-12-22 16:17:10
【问题描述】:
我是领域的新手,在保存嵌套对象时遇到了很多麻烦。我可以拯救父母,但我得到一个Realms.Exceptions.RealmObjectManagedByAnotherRealmException 说Cannot start to manage an object with a realm when it's already managed by another realm。我只有一个领域,我正在创建一个新对象!
这是父类的样子:
public class Transaction : RealmObject
{
[PrimaryKey]
public string ID { get; set; } = Guid.NewGuid().ToString();
...
public IList<TransactionDetails> Rows { get; }
}
这是孩子:
public class TransactionDetails : RealmObject
{
[PrimaryKey]
public string ID { get; set; } = Guid.NewGuid().ToString();
public Account Account { get; set; } = new Account();
public double Amount { get; set; }
...
}
在我试图保存对象的类的构造函数中,我拥有realm = Realm.GetInstance( config );。
这是我的最新尝试,我尝试在单独的写入事务中写入详细信息,但没有成功。
var transaction = new Models.Transaction();
...
realm.Write( () => realm.Add( transaction, update: true ) );
foreach ( var details in Trans.Rows )
{
var row = new TransactionDetails();
...
//realm.Add( details );
//realm.Write( () => realm.Add( details ) );
realm.Write( () => transaction.Rows.Add( details ) ); // Error here every time
}
documentation 一点帮助都没有。
【问题讨论】:
-
在高层次上,没有理由不这样做。我想这是您未提供的代码中的某些内容导致了问题。例如,
TransactionDetails类上有一个Account引用,可能还有其他相关对象。 SO 不太适合回答这些问题,所以我建议你在 Github (github.com/realm/realm-dotnet/issues) 上打开一个问题,最好提供一个重现项目,以便我们进行调查。 -
好的,谢谢尼古拉。