我需要 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 等附加属性中)
UPDATE:
关于您的答案,这意味着:
Store st = stores.SingleOrDefault(p => p.Id == 124671);
Store st = stores.SingleOrDefault(p => p.Id == 124671);
会触发对数据库的 2 个选择,这将使 LINQ-idea 毫无用处?!或者我在这里犯了什么错?
我认为 LINQ 基本上会保存我在选择中获取的所有数据,并且仅在“缓存”中找不到数据时才执行另一个请求。所以,我认为它就像我的应用程序和应用程序之间的某种“神奇”存储层数据库..
更新#2
只是你明白了......我想在开始时失去性能(当抓取所有数据时)并在我从“缓存”数据中选择时赢回它......
试试这个:
DataContext dc = new DataContext();
var allStores = dc.Stores.ToList();
Store st = allStores.SingleOrDefault(p => p.Id == 124671);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)