簡體   English   中英

檢查項目是否存在於SQL Server CE中的最佳方法?

[英]Best way to check if an item exists in sql server ce?

好的,所以我基本上是在嘗試檢查數據庫中是否存在項目時,確定哪種方法更有效地提高性能。

我在SQL Server CE的WP7上使用LINQ to SQL。

我將把多個對象導入數據庫。 現在很有可能其中的某些對象已存在於數據庫中,因此我需要檢查每個項目的進入情況,如果它們已經存在,請跳過它,否則添加它。

我想到了兩種方法。 第一種是使用foreach並檢查數據庫中是否存在相同名稱的對象:

foreach(var item in items)
{
    //Make individual call to db for every item
    var possibleItem = /*SQL SERVER STATEMENT WITH WHERE CONDITION*/;
}

盡管單獨調用數據庫聽起來很耗資源。 因此,另一個想法是對數據庫中的所有對象進行完全選擇,並將它們存儲在列表中。 然后用foreach幾乎執行相同的概念,除了現在不必連接到數據庫,我可以直接訪問列表。 您對這些方法有何想法? 有沒有更好的辦法?

如果您可以輕松地對項目進行排序,則可以從數據庫中進行選擇,並逐步瀏覽列表,同時通讀數據庫以確定哪些項目是新的。 這應該比保留內存的多重選擇要快得多。

using(var reader = cmd.ExecuteReader())
{
  while(reader.HasRows && reader.Read())
  {
    var id = reader.GetInt32(0);
    // test how id compares to the memory list
  }
}

但是,如果不考慮內存問題,為簡單起見,我可能只是將所有密鑰從數據庫中讀取到內存中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM