我有一个相对较小的视图,我想在从数据库中获取它后将其缓存。由于我只需要基于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查询而不会一次又一次地访问数据库?
答案 0 :(得分:2)
var view = dbContext.view.ToList();
将通过创建内存中IEnumerable
来缓存您的视图。您仍然可以针对它运行Linq查询。
但是,请考虑将结果放在Dictionary
中。按索引获取行会快得多。