c# – Linq to SQL立即执行查询

c# – Linq to SQL立即执行查询,第1张

概述我有 Linq查询,并希望立即执行它,然后 *** 纵数据.现在在下面的代码中,当执行第二(2)Linq查询时,执行第一个(1)Linq查询.我想首先执行first(1)查询,怎么做? // 1var statistic = DataAccess.Instance.Statistics .Where(p => p.DateStamp >= fromDate && 我有 Linq查询,并希望立即执行它,然后 *** 纵数据.现在在下面的代码中,当执行第二(2)linq查询时,执行第一个(1)linq查询.我想首先执行first(1)查询,怎么做?

// 1var statistic = DataAccess.Instance.Statistics                    .Where(p => p.DateStamp >= fromDate && p.DateStamp <= DateTime.UtcNow && p.UserID == userID)                    .Select(p => new {p.DateStamp.Year,p.DateStamp.Month,p.DateStamp.Day });values = new int[interval];labels = new string[interval];for (var i = 0; i < labels.Length; i++){    // 2    var recordsCount = statistic.Count(p => p.Year == dayStep.Year && p.Month == dayStep.Month && p.Day == dayStep.Day);}
解决方法 我认为你在.NET中的数据 *** 作中缺少一个重要的概念

延期和立即获取

需要强调的一点是,默认情况下,liNQ to sql会从中检索数据
数据库仅在您请求它时,而不是在您定义liNQ to SQL查询或创建时
表集合.这称为延迟提取.

当foreach循环启动时,liNQ to sql创建并运行派生的sql SELECT语句
从liNQ to SQL查询创建ADO.NET DataReader对象.每次迭代
foreach循环执行必要的GetXXX方法来获取该行的数据.后
liNAC to sql关闭了最后一行,并由foreach循环处理
数据库连接.

延迟提取可确保仅检索应用程序实际使用的数据
数据库.但是,如果要访问在远程sql实例上运行的数据库
服务器逐行获取数据并不能充分利用网络带宽.在这
方案,您可以通过强制立即获取和缓存单个网络请求中的所有数据
评估liNQ to SQL查询.您可以通过调用ToList或ToArray来完成此 *** 作
扩展方法,在定义liNQ to sql时将数据提取到列表或数组中
查询,像这样:

var productsquery = from p in products.ToList()select p;
总结

以上是内存溢出为你收集整理的c# – Linq to SQL立即执行查询全部内容,希望文章能够帮你解决c# – Linq to SQL立即执行查询所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1222076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存