获取LINQ以预加载完整的表

Dav*_*vid 4 c# linq

我需要LINQ来获取整个表,但这似乎不起作用...每次我通过pkey选择值时,再次触发选择..

所以,实际上这段代码:

        DataContext dc = new DataContext();

        dc.Stores.ToList();

        Store st = dc.Stores.SingleOrDefault(p => p.Id == 124671);
Run Code Online (Sandbox Code Playgroud)

正在制作一个

select * from store 
Run Code Online (Sandbox Code Playgroud)

在"ToList()"方法和附加

select * from store where id = 124671
Run Code Online (Sandbox Code Playgroud)

在它下面的选择部分......

当然,我想阻止它进行第二次选择..

我该怎么办?(我不想将ToList()结果存储在List <Store>等附加属性中

更新:

关于你的答案意味着:

Store st = stores.SingleOrDefault(p => p.Id == 124671);
Store st = stores.SingleOrDefault(p => p.Id == 124671);
Run Code Online (Sandbox Code Playgroud)

会触发2选择到DB,这会使LINQ-idea无用?!或者我在这里弄错了什么?

我认为LINQ基本上会保存所有我在选择抓起数据,并仅执行时的"缓存"未找到该数据的另一要求.所以,我认为它像某种我的应用程序之间,"神奇" storagelayer的数据库..

更新#2

只是你得到了这个想法..我想在开始时(当抓取所有数据时)失去性能并在我从"缓存"数据中选择时改回它...

And*_*are 8

试试这个:

DataContext dc = new DataContext();

var allStores = dc.Stores.ToList();

Store st = allStores.SingleOrDefault(p => p.Id == 124671);
Run Code Online (Sandbox Code Playgroud)