如何在我的DAL中调用时确保我的LINQ查询执行,而不是以延迟的方式执行?

Kin*_*tor 8 c# linq delayed-execution linq-to-sql

我有一个DAL,它由一堆在我的数据库上执行LINQ查询的方法组成.

如何确保返回说,一个IEnumberable或从数据库中类似的事情之前,我保证LINQ查询执行,然后,而不是在一些延迟的方式才得以执行,使用的结果是什么时候?

我知道我可以在我的方法中调用.ToList()来强制它执行,但这是最好的方法吗?

And*_*are 13

调用ToList或者ToArray确实是强制它执行并获取整个序列的最佳方法(请参阅下面的Randolpho对其他方法的注释,这些方法将强制执行序列的单个元素).

是否有特定原因要避免延期执行?

  • 不要忘记First(),Single()或FirstOrDefault()或SingleOrDefault() (9认同)
  • @ Erx_VB.NExT.Coder - 是的,Randolpho在他的评论中提到的方法确实强制执行. (4认同)