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