現在、Windows Phone 7上のローカルストレージ用の実用的なデータベースソリューションは何ですか?検索を使用して、私はこれらの2つのスレッドを見つけましたが、数ヶ月以上前です。私はWP7のためのデータベースにいくつかの新しい開発があるのだろうかと思っていました。また、以下のリンクに記載されているデータベースについてのレビューは見つかりませんでした。現在Windows Phone 7の実行可能なローカルデータベースとは何ですか?
私の要件は次のとおりです。
- それは保存
- 商用利用は無料であるべき/レコードを更新するだけで、実際のレコードを保存してはいけませんデータベース全体(WinPhone7 DBと違って)
- LINQを使用して〜1000レコードのテーブルで高速クエリを実行できます。
- も
EDIT:
は単なるテストアプリを使用してスターリングを試してみました:それはよさそうだが、私は2つの問題を持っています。
1000レコードの作成には、
db.Save(myPerson)
を使用すると30秒かかります。 Personは5つのプロパティを持つシンプルなクラスです。
その後、私はdb.SaveAsync<Person>(IList)
メソッドがあることを発見しました。これは、現在のスレッドをもうブロックしないため、問題ありません。
BUT私の質問は:db.Flush()
をすぐに呼び出して保存して、現在保存しているIListのクエリを実行しますか? (同期モードでレコードを保存するのに30秒かかるため)。または、BackgroundWorkerが保存を完了するまで待つ必要がありますか?これらの1000レコードをLINQとwhere句で照会すると、最初にメモリにロードするのに14秒かかることがあります。
これをスピードアップする方法はありますか?ここで
いくつかのベンチマーク結果は以下のとおりです。あなたは、スターリングを見てしたい場合があります(ユニットテストは、HTCトロフィー上で実行された)
----------------------------- purging: 7,59 sec creating 1000 records: 0,006 sec saving 1000 records: 32,374 sec flushing 1000 records: 0,07 sec ----------------------------- //async creating 1000 records: 0,04 sec saving 1000 records: 0,004 sec flushing 1000 records: 0 sec ----------------------------- //get all keys persons list count = 1000 (0,007) ----------------------------- //get all persons with a where clause persons list with query count = 26 (14,241) ----------------------------- //update 1 property of 1 record + save persons list with query count = 26 (0,003s) db saved (0,072s)
私は議論/主観的であることの前提にある2人の近い票があります参照してください。 「最高のものは何か」を「実行可能なもの」という言葉に変えることは、この問題に取り組むべきです。 –
ok thx、thats fine with me – Buju
ところで、あなたは最新バージョンをダウンロードするべきです。隔離されたストレージプロバイダに問題がありましたが、今はるかに高速です。 –