首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查项目是否存在于sql server ce中的最佳方法?

检查项目是否存在于sql server ce中的最佳方法?
EN

Stack Overflow用户
提问于 2012-03-15 05:20:15
回答 1查看 676关注 0票数 0

好的,所以我基本上是在尝试确定在检查数据库中是否存在项时,哪种方式的性能更有效。

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

我将把多个对象导入数据库。现在有一个很好的可能性,这些对象中的一些已经存在于数据库中,所以我需要在它们进入时检查每一项,如果它已经存在,则跳过它,否则添加它。

有两种方法浮现在脑海中。第一个是使用foreach并检查db中是否存在同名的对象:

代码语言:javascript
复制
foreach(var item in items)
{
    //Make individual call to db for every item
    var possibleItem = /*SQL SERVER STATEMENT WITH WHERE CONDITION*/;
}

尽管对数据库进行单独调用听起来相当耗费资源。因此,另一个想法是对数据库中的所有对象进行完全选择,并将它们存储在列表中。然后对foreach做了几乎相同的概念,除了现在我不需要连接到db,我可以直接访问列表。你对这些方法有什么看法?有没有更好的方法?

EN

Stack Overflow用户

回答已采纳

发布于 2012-03-15 05:40:51

如果您可以轻松地对项目进行排序,则可以从数据库中进行选择,并在浏览数据库时逐步执行列表,以确定哪些项目是新的。这应该比在保留内存的情况下进行多次选择要快得多。

代码语言:javascript
复制
using(var reader = cmd.ExecuteReader())
{
  while(reader.HasRows && reader.Read())
  {
    var id = reader.GetInt32(0);
    // test how id compares to the memory list
  }
}

但如果内存不重要,为了简单起见,我可能只会将数据库中的所有键读取到内存中。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9710456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档