【问题标题】:How can I make sure my LINQ queries execute when called in my DAL, not in a delayed fashion?如何确保我的 LINQ 查询在 DAL 中被调用时执行,而不是以延迟方式执行?
【发布时间】:2009-06-18 15:03:22
【问题描述】:

我有一个 DAL,它由一组对我的数据库执行 LINQ 查询的方法组成。

如何确保在从数据库返回 IEnumberable 或类似内容之前,我确保执行 LINQ 查询 then,而不是以某种延迟方式仅在结果为用过吗?

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

【问题讨论】:

  • 为什么不希望延迟执行?

标签: c# linq linq-to-sql delayed-execution


【解决方案1】:

调用ToListToArray 确实是强制它执行并获取整个序列的最佳方法(请参阅下面 Randolpho 的评论,了解将强制执行序列的单个元素的其他方法)。

您是否有特定的理由希望避免延期执行?

【讨论】:

  • 不要忘记 First()、Single() 或 FirstOrDefault() 或 SingleOrDefault()
  • 非常正确,但我认为他们想要获得整个序列。
  • 我想知道,.FirstOrDefault 和类似方法会强制执行 linq 查询吗?只是想确认一下...
  • @Erx_VB.NExT.Coder - 是的,Randolpho 在上面的评论中提到的方法确实会强制执行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多