性能:最小化数据库命中

时间:2012-09-10 15:58:35

标签: c# sql-server sql-server-2008

我有一个list<abbreviatedProducts>我需要与我的sql server 2008数据库中的值交叉引用。

我想我必须迭代字符串并每次为每个产品点击数据库。

List<string> abbreviatedProducts = new[] { strawb, bana, ki, orang };

for each (var item in products)
{
  //hit database to get full product name;
}

这是最好的方式吗?

1 个答案:

答案 0 :(得分:1)

有一种更快的方法,你可以这样做:

List<string> products = new [] { "prod1", "prod2", "prod3" };

var dbProducts = datacontext.Products.Where(pr => products.Contains(pr.ProductName));

这假设您的Products表中有一个名为ProductName的列,其名称类似于“prod1”等。