从LINQ创建可查询的缓存结果

时间:2013-06-03 23:19:25

标签: .net linq

我有一个相对较小的视图,我想在从数据库中获取它后将其缓存。由于我只需要基于userID的某些行,所以我宁愿不遍历我的userID列表并且每次都查询数据库。我宁愿在内存中使用该表,然后能够对其执行linq查询以获取我想要的特定行。

var view = dbContext.view; //I know this line doesn't execute the query

for(int i = 0; i < userIDCount; i++)
{
    var dataRow = view.Where(v => v.userID == userIDs[i]);
}

有没有办法在内存中保持视图,并且能够在循环中使用linq查询而不会一次又一次地访问数据库?

1 个答案:

答案 0 :(得分:2)

var view = dbContext.view.ToList();

将通过创建内存中IEnumerable来缓存您的视图。您仍然可以针对它运行Linq查询。

但是,请考虑将结果放在Dictionary中。按索引获取行会快得多。