2014-03-03 10 views
0

다른 테이블과의 관계가 1 : 1 인이 tblDocument 테이블이 있습니다. 이 쿼리 문자열을 작성하여 문서의 내용을 표시합니다. 이 영혼에서 나는 DocPerson id 만 표시합니다. 무엇을 하려는지 tblPerson 테이블에있는 사람의 이름을 표시하는 것입니다. 누군가 나를 도울 수 있습니까? 당신의 LINQ 표현쿼리 문자열 표시 세부 사항

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

, 다음을 시도하십시오

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)를 확인하십시오. –