Хорошо, поэтому я в основном пытаюсь определить, какой способ более эффективен при проверке наличия элементов в базе данных.
Я использую LINQ to SQL на WP7 с SQL Server CE.
Я собираюсь импортировать несколько объектов в базу данных. Теперь существует довольно хорошая вероятность того, что некоторые из этих объектов уже существуют в базе данных, поэтому мне нужно проверять каждый элемент по мере его поступления и, если он уже есть, пропустить его, в противном случае добавить его.
Было два подхода, которые пришли на ум. Первый использовал foreach и проверял, существует ли объект в БД с таким же именем:
foreach(var item in items)
{
//Make individual call to db for every item
var possibleItem = /*SQL SERVER STATEMENT WITH WHERE CONDITION*/;
}
Выполнение отдельных вызовов в БД, хотя звучит довольно ресурсоемко. Поэтому другой идеей было сделать полный выбор всех объектов в БД и сохранить их в списке. И затем в значительной степени выполняют ту же концепцию с foreach, за исключением того, что теперь мне не нужно подключаться к БД, у меня есть прямой доступ к списку. Что вы думаете об этих подходах? Есть ли лучший способ?