2016-10-22 7 views
0

これは、RealmのXamarin studio(iOSとAndroidの両方のアプリケーションを作成する)で初めての試みですが、 24時間。XamarinのWeb(JSON)からrealmデータベースに行を一括挿入する方法

私のオンラインデータベーステーブルには30,000行があります。以前はAndroidスタジオで仕事をしていましたが、JSON、GSONの助けを借りてアプリケーションの1回目の実行でこれらの行をインポートしてSQLite dbに挿入しました。

しかしRealm & Xamarinではこれを行うことができません。私は知っている、私はコードスニペット(私の努力)を提供していないが、正直なところ、これについて多くを検索した後でも、私はどのように進むべきかを見つけることができませんでしたか?

答えて

0

私はすでにGithub issueに答えましたが、他の誰かがそれに遭遇した場合、UIスレッドをブロックせずにこれを行う最善の方法は、Realm.WriteAsync APIを使用することです。基本的に、あなたが何かをやるように:注意すべき

var items = await service.GetAllItems(); 
// I assume items are already deserialized RealmObject-s 
var realm = Realm.GetInstance(); 
await realm.WriteAsync(r => 
{ 
    foreach (var item in items) 
    { 
     r.Manage(item); 
    } 
} 
/* Data is loaded, show message or process it in other ways */ 

ことの一つは、WriteAsyncラムダの中に、私たちは元realm 1をrインスタンスを使用していないということです。理由は、レルムがスレッドセーフではなく、非同期書き込みが別のスレッドで発生するため、暗黙的に別のインスタンスを作成し、それをactionパラメーターの引数として渡すからです。

関連する問題