公共IEnumerable<;实体类>;设置为Linq查询,返回null-Asp.net页面
本文关键字:查询 返回 null-Asp net Linq 页面 设置 lt IEnumerable 实体 公共 | 更新日期: 2023-09-27 17:59:44
我有一个网页,它会频繁调用数据源。我不想向数据库发送很多调用,而是想本地化该集,然后使用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;
我得到一个错误,源在调试期间为null。
有什么更好的方法来实现这一点的想法或建议吗?
您正在初始化theList
属性的set
中的内部私有变量_theList
,但在读取它时,将访问它的是get
(C#中的属性)。
你想做的是(也试着用CamelCase[Capitalization Conventions]写属性):
private IEnumerable<entityFrameworkClass> TheList
{
get
{
if(_theList == null)
{
_theList = from i in context select i;
}
return _theList;
}
}
在上面的代码中,永远不会调用"set",因此_theList为空我也会把它改成:
_列表=(从上下文中的i中选择i)。ToList();
为了确保它现在被调用-而不延迟执行