难道new datacontext()时就载入数据了?

cloud1121 2009-09-21 09:43:34
跟踪程序的时候发现在new datacontext()的时候dbml中的所有表的数据都被全部截入了,真是这样的吗?如果表中的数据量很大,而我只取一行,这样做效率岂不是太低了啊.
...全文
69 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿书 2010-05-24
  • 打赏
  • 举报
回复
楼上说得对。跟踪其实就是个get动作
kugou123 2009-09-21
  • 打赏
  • 举报
回复
不是的吧。Linq默认是有延迟生效机制的,在遍历结果集的时候,才会真正去取数据的。
  • 打赏
  • 举报
回复
[Quote=引用楼主 cloud1121 的回复:]
跟踪程序的时候发现在new datacontext()的时候dbml中的所有表的数据都被全部截入了,真是这样的吗?如果表中的数据量很大,而我只取一行,这样做效率岂不是太低了啊.
[/Quote]

这说明你的所谓“跟踪”动作触发了它。你跟踪的时候,要想到有没有可能起坏的作用。
cloud1121 2009-09-21
  • 打赏
  • 举报
回复
我也一直这样认为的,但是专门建了一个项目来测试,建个DBML文件,拖两个表进去,然后在FORM里只写一句dbDataContext db = new dbDataContext();断点这里,运行程序,到断点再看db里面,所有表的行集合都有数据了
所以现在有点不敢确定了,想求证一下是我理解错了,还是操作不对

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧