私は基本的に、アイテムがデータベースに存在するかどうかをチェックするときに、より効率的なパフォーマンスの方法がどちらであるかを判断しようとしています。アイテムがSQL Server CEに存在するかどうかを確認する最も良い方法は?
SQL Server CEでWP7でLINQ to SQLを使用しています。
データベースに複数のオブジェクトをインポートしようとしています。これらのオブジェクトのいくつかは既にデータベースに存在する可能性が非常に高いので、各アイテムが入ってきたらチェックする必要があります。スキップしている場合はスキップし、そうでない場合は追加します。
2つのアプローチが考えられました。音はかなり資源集約かかわらDBへの個々の呼び出しを作る
foreach(var item in items)
{
//Make individual call to db for every item
var possibleItem = /*SQL SERVER STATEMENT WITH WHERE CONDITION*/;
}
:最初は、foreachのを使用して、オブジェクトが同じ名前のDBに存在するかどうかをチェックしました。したがって、もう1つのアイデアは、db内のすべてのオブジェクトを完全に選択してリストに格納することでした。そして、私はdbに接続する必要はありませんが、私はリストに直接アクセスできるようになりました。これらのアプローチについてのあなたの考えは何ですか?より良い方法がありますか?
疑問があるときに試してみてください - 通常、あなたはforeachを行う必要がないように物事を変えようとする必要があります。ほとんどの場合、Whereと、このクエリに基づいてforeachを行うことができます。 )しかし、コードなしであなたは言うことができません。しかし、私はSqlCeがメモリ内でインデックス作成を行うので、リスト(O(n)のクエリパフォーマンスが悪い)に基づいてより遅くなるべきではないと考えています – Carsten