延迟加载不调用函数

Har*_*rma 3 c# lazy-loading

当我调试我的应用程序时,我发现下面的代码行没有调用我的服务层中的任何方法:

private Lazy<List<userAudit>> lazyList = null;
lazyList = new Lazy<List<userAudit>>(() => client.GetAudit(10).ToList());
Run Code Online (Sandbox Code Playgroud)

而且,我的GetAudit方法将返回审计对象的列表,下面是它的定义:

public List<t_user_audit> GetAudit(int id)
{
   return _work.GetGenericRepositoryFor<List<userAudit>>().GetByID(id);
}
Run Code Online (Sandbox Code Playgroud)

并且,在上面的定义中,我在GetAudit方法中插入了一个断点,但是当编译器没有到达断点并且只是将NULL值返回给我时。

我不知道我在哪里犯了错误或者代码有什么问题。

我正在关注您能否解释延迟加载文章。

gtu*_*rri 5

所述的点Lazy类是,根据文档Provides support for lazy initialization.

所以这是正常的

lazyList = new Lazy<List<userAudit>>(() => client.GetAudit(10).ToList());
Run Code Online (Sandbox Code Playgroud)

不调用这个方法。

但是,如果您使用Value属性,它将被调用