0

我有一个相对较小的视图,我想在从数据库中获取它之后缓存它。由于我只需要基于 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 查询而不会一遍又一遍地访问数据库?

4

1 回答 1

2
var view = dbContext.view.ToList();

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

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

于 2013-06-03T23:25:21.903 回答