选择Linq不调用方法

Pau*_*ulo -1 c# linq

我有这个代码Linq c#

from r in Employer.Restrictions 
select new RestrictionDto(r);
Run Code Online (Sandbox Code Playgroud)

雇主限制在注册,但RestrictionDto的构造函数从未被调用,只返回null.我在restrictionDto中放了一个breakPoint,代码永远不会停止.

我以前从未见过这个问题.我在代码中有很多这样的代码并且工作正常.

有人可以帮忙吗?

Ous*_* D. 5

Linq查询是懒惰的,即除非另有说明,否则它们实际上不执行任何操作.

换句话说,您不是要求执行查询.如果你想执行查询,它必须完成ToList或你认为适合手头任务的任何急切操作.

  • @Paulo`ToList`永远不会返回null.此外,如果永远不会调用构造函数,那么这意味着`Employer.Restrictions`为空.也许你应该首先检查源是否为空?如果它不是,你是_definitely_调用`ToList`我没有看到任何理由为什么它不会工作... (4认同)