2016-03-03 91 views
-2

我有大學的教師數據在會議[「FacultyData」]會議。在asp.net中輸入會話對象類型對象(類)c#

我無法從此會話中獲取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 [學部]在」線爲類型 '教師'

objFac = (FacultyData)];

+0

Session [「FacultyData」]是'IEnumerable '的後代,而不是'Faculty'。你必須使用'Session [「FacultyData」]。FirstOrDefault()' –

+0

你的session變量保存查詢本身,而不是查詢結果。 – Kramb

+0

你在哪裏設置Session [「FacultyData」]?讓我們減少別人的猜謎遊戲。 – MethodMan

回答

1

您必須從Linq查詢中設置Session [「FacultyData」]值.Linq查詢使用延遲評估,因此您正在存儲查詢的結果而不是查詢結果查詢本身在會話變量中,你需要在Linq查詢中使用一個操作符來強制它luate,如ToList,ToArray或FirstOrDefault。然後將結果查詢結果對象存儲在會話中。