对象引用未设置为Session中对象的实例

时间:2012-04-30 16:41:26

标签: asp.net linq session

我在这行代码Session.Linq<Employees>()中收到错误:

  

“非静态字段,方法或属性'System.Web.UI.Page.Session.get'需要对象引用。

这是我的代码:

 public static object GetData(Dictionary<string, object> tableParams)
        {
            IQueryable<Employees> Employee = Session.Linq<Employees>();
            if (tableParams.ContainsKey("sEcho")) 
            {
                var parser = new DataTableParser<Employees>(tableParams, Employee);
                return parser.Parse();
            }
            return Employee;
        }

如果我使用HttpContext.Current.Session.Linq<Employees>(); 然后我得到:

  

'System.Web.SessionState.HttpSessionState'不包含'Linq'的定义,并且没有扩展方法'Linq'接受类型'System.Web.SessionState.HttpSessionState'的第一个参数可以找到'

我需要做些什么才能让它发挥作用?我是否错过了Linq关于Session的命名空间?我正在使用System.LinqSystem.Linq.Expression

1 个答案:

答案 0 :(得分:0)

我认为你误会了什么。你要做的事情与Linq没有任何关系,至少在从会话中检索对象的上下文中没有。

您需要从会话中检索对象并将其取消包装:

var list = Session["MyList"] as List<int>;
if (list != null)
{
    //the list was found and you can start using it here
}