通过IQueryable循环与使用C#中的Reader.Read()通过Datareader循环相同

通过IQueryable循环与使用C#中的Reader.Read()通过Datareader循环相同,第1张

通过IQueryable循环与使用C#中的Reader.Read()通过Datareader循环相同

AFAIK
EF将使用您的第二个选项。之所以这样说,是因为我经历了EF在循环浏览第一个查询的结果时执行另一个查询时会打开第二个连接的情况。由于我正在使用事务,并且我禁用了分布式事务,并且第二个打开的连接(虽然第一个连接仍处于打开状态并且已使用)禁用了当前事务的重用,所以我的第二个查询抛出了一个异常,说DTC不是未启用。

所以我的结论是:如果您正在执行查询并遍历结果(因此为no

.ToList()
),则查询仍在执行,并且连接仍处于打开状态,并且如果EF使用的是数据读取器,则为在从数据读取器读取的循环中。



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

原文地址: http://outofmemory.cn/zaji/5640409.html

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

发表评论

登录后才能评论

评论列表(0条)

保存