我在会话[“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”];
答案 0 :(得分:1)
您必须从Linq查询中设置Session [&#34; FacultyData&#34;]值。 Linq查询使用延迟评估,因此您将查询本身存储在会话变量中,而不是查询结果。您需要在Linq查询上使用一个强制它进行求值的运算符,如ToList,ToArray或FirstOrDefault。然后将生成的查询结果对象存储在会话中。