我底部有一些方法。我想多次调用此方法,但另外我想调用Session.Prefetch<OpParamDef>()
JUST一次。我需要做什么?对此有什么特别的命令吗?我想第一次调用Prefetch
。
public void method
{
get
{
Session.Prefetch<OpParamDef>();
var result = new List<OpParamDef>();
}
}
答案 0 :(得分:1)
您可以使用Lazy<T>
来存储延迟加载的集合。文档为here
基于您的问题的示例用法可能是:
Lazy<List<OpParamDef>> Collection { get; set; }
//...in your ctor
Collection = new Lazy<List<OpParamDef>>(() => Session.Prefetch<OpParamDef>());
您可以多次访问Collection.Value
,但Session.Prefetch<OpParamDef>()
仅在第一次调用时使用,然后缓存该初始值设定项的结果。
您甚至可以隐藏属性后面的Value
访问者:
public List<OpParamDef> CollectionAsList
{
get
{
return Collection.Value;
}
}
如果不使用该值,则具有不加载初始化函数的好处。
除此之外,您还可以在任何环境中灵活使用此方法。 (应用程序级别,请求上下文等)