私はこのクラスをCart_Recordとします。私はPrimaryKeyを更新したい。これを行うには、オブジェクトを新しいオブジェクトにコピーして、CartLinesをコピーしてIDを更新しようとしています。私は、問題のキューやドキュメントが私を助けてくれることはあまりありませんでした。異なるプライマリ・キーでオブジェクトを複製する方法
public class Cart_Record : RealmObject
{
public Cart_Record() { }
public Cart_Record(IList<Cart_Line> cartLines, int id)
{
ID = id;
foreach (var cartLine in cartLines)
CartLines.Add(App.RealmDB.Find<Cart_Line>(cartLine.ProductId));
}
[PrimaryKey]
public int ID { get; set; }
public IList<Cart_Line> CartLines { get; }
}
私は例外、特にRealmObjectManagedByAnotherRealmExceptionを得続けるしかし、私はこの
var appCart = App.RealmDB.All<Cart_Record>().First();
App.RealmDB.Write(() =>
{
var cartLines = new List<Cart_Line>(appCart.CartLines);
App.RealmDB.Remove(App.RealmDB.Find<Cart_Record>(appCart.ID));
App.RealmDB.Add<Cart_Record>(new Cart_Record(cartLines, serverCart.ID));
});
をしようとしています。私はカートレインオブジェクトをレルムに、新しいオブジェクトのカートラインリストに読み込んでいないので、どのように理解できません。
私は間違っていますか?
ありがとうございます。
編集:動作するものを見つけましたが、他の誰かがより良い方法を持っているかどうかを確認したいと思います。これは私のために働くものです。
var appCart = App.RealmDB.All<Cart_Record>().First();
App.RealmDB.Write(() =>
{
var cartLines = new List<Cart_Line>(appCart.CartLines);
App.RealmDB.Remove(App.RealmDB.Find<Cart_Record>(appCart.ID));
var newAppCart = App.RealmDB.Add<Cart_Record>(new Cart_Record() { ID = serverCart.ID });
foreach (var cartLine in cartLines)
newAppCart.CartLines.Add(cartLine);
});