代码改变世界

EF中避免查询重复执行的手段

2014-01-09 18:34  ARMdong  阅读(558)  评论(0编辑  收藏  举报

  由于ef有lazyload机制,编写的查询语句往往都没有立即执行,当你轮训结果集的时候才会将查询翻译成database端的sql语句,执行sql将结果返回到方法中。但是,下次再使用前面的结果集的时候,又会再一次的到数据库中去查询数据。因此,有时候我们希望这个查询只执行一次,而不是每次使用结果集的时候都去数据库查询,下面有几个解决方案:

希望拿到结果集:

1、使用ToList()强制执行;

2、使用ToArray();

 

拿到单一数据:

1、Single() 或 SingleOrDefault();

2、First() 或 FirstOrDefault();