2014-03-03 105 views
0

我得到了這個tblDocument表,它與其他幾個表有一對多的關係。我創建了這個顯示文檔內容的查詢字符串。在此soulution中,我只顯示DocPerson ID。我試圖做的是顯示位於tblPerson表中的人員的姓名。有人能幫我嗎?Querystring顯示細節

if (!IsPostBack) 
    { 
     string strId = Request.QueryString["id"]; 
     int id; 
     if (int.TryParse(strId, out id)) 
     { 
      var db = new MyModelContext(); 
      var p = db.tblDocuments.SingleOrDefault(x => x.DocId == id); 
      if (p != null) 
      { 

       lblCaseNr.Text = p.DocNr; 
       lblPerson.Text = p.DocPerson.ToString(); 
       lblCourt.Text = p.DocCourt.ToString(); 
       lblYear.Text = p.Docyear.ToString(); 
       lblResume.Text = p.DocResume; 
       lblResult.Text = p.DocResult; 
       lblLaw.Text = p.DocLaw.ToString(); 

      } 
     } 
    } 
} 
+0

你的代碼有什麼問題(我已經看到一個DocPerson?)?它拋出一個錯誤?此外,如果屬性已經是字符串,則不需要再執行ToString()。 –

+0

DocPerson是一個int並且是Person的ID。所以ToString()是必要的 –

回答

2

爲了您LINQ表達,請嘗試以下操作:

var q = from d in db.tblDocuments join p in db.tblPerson 
      on d.DocId equals p.DocId 
      where d.DocId == id 
      select new {d.DocId, p.DocPerson} 

如果您需要訪問其他領域,簡單地將它們添加到您的select new條款。

+0

你想在哪裏添加linq表達式? –

+0

用這個替換你當前的'LINQ'表達式。這會給你一個匿名類型。爲了訪問屬性,你可以用'foreach'語句來循環。檢查[這裏](http://msdn.microsoft.com/en-us/library/bb397696.aspx)瞭解更多信息。 –