我有一个网页,会频繁调用数据源。我想要本地化集合,然后使用linq使各种控件查询本地集,而不是向数据库发送许多调用。我可能试图做错了,所以我正在寻找一些意见。
private IEnumerable<entityFrameworkClass> _theList;
private IEnumerable<entityFrameworkClass> theList
{ set { _theList = from i in context select i;} get { return _theList; }}
然后在Page_Load
var yearQuery = from y in theList
select y;
我在调试期间收到源为空的错误。
有任何想法或建议可以采用更好的方法来实现这一目标吗?
答案 0 :(得分:0)
在上面的代码中,“set”永远不会被调用,因此_theList为空 我也会改为:
_theList = (from i in context select i).ToList();
确保现在调用它 - 没有延迟执行
答案 1 :(得分:0)
您正在初始化_theList
set
属性中的内部私有变量theList
,但在阅读它时,将会访问get
private IEnumerable<entityFrameworkClass> TheList
{
get
{
if(_theList == null)
{
_theList = from i in context select i;
}
return _theList;
}
}
})。
您要做的是这样做(尝试使用CamelCase Properties in C#编写属性):
{{1}}