我有一个控制台应用程序。假设我有一个使用Linq to Sql调用存储过程的getter。存储过程返回ISingleResult<T>
并转换为List<T>
:
private List<GetInvoicesResult> _invoiceRequests {
get{
var result = this._context.GetInvoices();
if (result != null)
{
return result.ToList();
}
return null;
}
}
如果我对getter引用进行了2次调用:
int ct = _invoiceRequests.Count();
foreach(var invoice in _invoiceRequests){
//do something
}
是执行两次的存储过程还是需要缓存数据?
答案 0 :(得分:3)
它将执行SP两次。如果要缓存数据,则需要在属性获取器中明确地执行此操作。