2016-10-24 10 views
0

レルム管理オブジェクトを更新するにはどうすればよいですか?レルム管理更新

これを2回実行すると、オブジェクトはすでに管理されていると言われて失敗します。私はExceptionを理解していますが、オブジェクトを管理した後でオブジェクトを更新/削除するにはどうすればよいですか?

 using (var instance2 = Realm.GetInstance()) 
     { 
      using (var transaction = instance2.BeginWrite()) 
      { 
       foreach (var item in items) 
       { 
        instance2.Manage(item); 
       } 
       transaction.Commit(); 
      } 
     } 

答えて

0

オブジェクトをもう一度管理する必要はありません。レルムにManageを呼び出して追加すると、それは「ライブ」オブジェクトになります。変更するたびに永続化されます。あなたは従業員のリスト持っているのであれば:

var instance = Realm.GetInstance(); 
using (var transaction = instance.BeginTransaction()) 
{ 
    foreach (var e in employees) 
    { 
     instance.Manage(e); 
    } 
    transaction.Commit(); 
} 

をそしてあなたは、たとえば、彼らの給与を計算したい、あなたは、単に行うことができます:

using (var transaction2 = instance.BeginTransaction()) 
{ 
    foreach (var e in employees) 
    { 
     e.Salary = CalculateSalary(e); 
    } 
    transaction2.Commit(); 
} 

あなたが見ることができるように、コールする必要はありませんManageもう一度、書き込みトランザクション内で更新するプロパティを設定するだけで済みます。

関連する問題