在asp.net中将会话对象类型转换为对象(类)#

时间:2016-03-03 17:13:30

标签: c# asp.net session

我在会话[“FacultyData”] 会话中拥有大学的教师数据。

我无法从此会话中获取Faculty类对象中的数据。

我尝试过以下代码。

protected void Page_Load(object sender, EventArgs e)
    {
        using (dbDataContext dt = new dbDataContext())
        {
            if(Session["FacultyData"]!=null)
            {
                Faculty objFac = new Faculty();
               objFac = (Faculty)Session["FacultyData"];
            img1.ImageUrl = objFac.Photo;
            txtIDNo.Text = objFac.UserId;
            txtName.Text = objFac.FacultyName;

.

.

InvalidCastException消息无法将类型为“System.Data.Linq.DataQuery'1 [Faculty]”的对象强制转换为在行中键入“Faculty”:< / p>

objFac =(教师)课程[“FacultyData”];

1 个答案:

答案 0 :(得分:1)

您必须从Linq查询中设置Session [&#34; FacultyData&#34;]值。 Linq查询使用延迟评估,因此您将查询本身存储在会话变量中,而不是查询结果。您需要在Linq查询上使用一个强制它进行求值的运算符,如ToList,ToArray或FirstOrDefault。然后将生成的查询结果对象存储在会话中。