public IEnumerable <entityclass>设置为Linq查询,返回null - Asp.net页面</entityclass>

时间:2011-06-17 19:55:16

标签: c# asp.net linq ienumerable

我有一个网页,会频繁调用数据源。我想要本地化集合,然后使用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;

我在调试期间收到源为空的错误。

有任何想法或建议可以采用更好的方法来实现这一目标吗?

2 个答案:

答案 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}}