gpt4 book ai didi

c# - 让 LINQ 预加载一个完整的表

转载 作者:太空狗 更新时间:2023-10-30 00:12:55 24 4
gpt4 key购买 nike

我需要 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 > )

更新:

关于您的回答,这意味着:

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);

关于c# - 让 LINQ 预加载一个完整的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1707668/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com