ASP.NET Mvc开发之EF延迟加载(2)

我们如果使用ADO.NET操作数据库,查询完数据后,数据会立即送给接收的对象(比如:DataTable对象),但是EF操作数据库怎么却没有立即去查询数据呢?

⑤DbQuery对象的延迟加载

当我们使用query对象的时候才回去查询数据库,我们继续执行下一步,结果如下:

ASP.NET Mvc开发之EF延迟加载

这个时候list取到了值,然后Sql Server Profiler也发生了变化,有了查询数据库的记录,如下图:

ASP.NET Mvc开发之EF延迟加载

也就是说,当query对象ToList()的时候,才发生了查询数据库的操作。

三、总结

1)EF中的DbQuery对象操作数据库的时候发生延迟加载,而直接使用List<T>来接受对象时则不会;

2)延迟加载不会立即去查询数据库,而是在使用数据的时候才EF才会去查询数据库。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjwjgw.html