私はレルムには新しく、ネストしたオブジェクトを保存するのには多くの問題があります。私は親を救うことができますが、Realms.Exceptions.RealmObjectManagedByAnotherRealmException
はCannot start to manage an object with a realm when it's already managed by another realm
となります。私は1つの領域しか持たず、新しいオブジェクトを作成しています!.Net内のレルムデータベースにネストされたオブジェクトを保存する
これは、親クラスが次のようになります。
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'リファレンスがあり、おそらく他の関連オブジェクトもあります。しかし、これらの質問に答えるにはあまり適していないので、Github(https://github.com/realm/realm-dotnet/issues)の問題を開いて、調査できるように理想的に再プロジェクトプロジェクトを提供することをお勧めします。 –
さて、Nikolaに感謝します。 – mack