公共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。

有什么更好的方法来实现这一点的想法或建议吗?

公共IEnumerable<;实体类>;设置为Linq查询,返回null-Asp.net页面

您正在初始化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();

为了确保它现在被调用-而不延迟执行