我需要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
只是你得到了这个想法..我想在开始时(当抓取所有数据时)失去性能并在我从"缓存"数据中选择时改回它...
试试这个:
DataContext dc = new DataContext();
var allStores = dc.Stores.ToList();
Store st = allStores.SingleOrDefault(p => p.Id == 124671);
Run Code Online (Sandbox Code Playgroud)