【发布时间】:2009-11-10 12:40:01
【问题描述】:
我需要 LINQ 来抓取整个表格,但这似乎不起作用......每次我通过 pkey 选择值时,都会再次触发一个选择......
所以,实际上这段代码:
DataContext dc = new DataContext();
dc.Stores.ToList();
Store st = dc.Stores.SingleOrDefault(p => p.Id == 124671);
正在制作一个
select * from store
在“ToList()”方法和一个附加的
select * from store where id = 124671
在它下面的选择部分...
当然,我想阻止它进行第二次选择..
我会怎么做? (我不想将 ToList() 结果存储在 List 之类的附加属性中)
更新:
关于你的回答,这意味着:
Store st = stores.SingleOrDefault(p => p.Id == 124671);
Store st = stores.SingleOrDefault(p => p.Id == 124671);
会触发对 DB 的 2 次选择,这会使 LINQ-idea 无用吗?!或者我在这里做错了什么?
我认为 LINQ 基本上会保存我在选择中抓取的所有数据,并且只有在“缓存”中找不到数据时才执行另一个请求。所以,我认为它就像某种“神奇”存储层之间我的应用程序和数据库..
更新 #2
只是你明白了......我想在开始时失去性能(当抓取所有数据时)并在我从“缓存”数据中选择时赢回改变......
【问题讨论】: