2011-11-23 13 views
1

我有一個連接2個表,並返回此結果的查詢:如何合併SQL結果聯接表到一個合適的對象

enter image description here

這是由於左加入,我在做我的查詢。 Progmatically,把它變成一個對象我做到以下幾點:

clsJobPosting JobPosting = new clsJobPosting(); 
    DataSet dsJobs = JobPosting.SelectForAllJobs(clsSession.UserID, startRowIndex, pageSize, orderBy, orderByDirection, categoryId); 


    DataTable dtJobs = dsJobs.Tables[0]; 

    List<JobItem> jobPostings = new List<JobItem>(); 

    DataRow[] arrFileInfo; 
    FileCountItem FileInfoItem; 
foreach (DataRow drJob in dtJobs.Rows) 
    { 
     JobItem jobPost = new JobItem(drJob, CallingPageName.AllQuestions); 
     jobPost.TotalRecords = totalRecords; 
     jobPost.FileItems = new List<FileCountItem>(); 
     if (jobPostings.Any(x => x.JobId == jobPost.JobId)) 
     { 

      JobItem jobItem = jobPostings.Single(s=>s.JobId == jobPost.JobId); 

      jobItem.Tags.Add(jobPost.CategoryName); 
      jobPost.Tags = jobItem.Tags; 
      jobPostings.Remove(jobItem); 

      jobPostings.Add(jobPost); 

     }else{ 
     arrFileInfo = dtFileInfo.Select("JobId = " + jobPost.JobId); 
     for (int j = 0; j < arrFileInfo.Length; j++) 
     { 
      FileInfoItem = new FileCountItem(arrFileInfo[j]); 
      jobPost.FileItems.Add(FileInfoItem); 
     } 
     string CategoryName = jobPost.CategoryName; 
     jobPost.Tags.Add(CategoryName); 
     jobPostings.Add(jobPost); 
     } 
    } 

我基本上把該數據轉換成有一個名爲Tags屬性的對象,這是一個List<string>哪裏存儲不同CategoreyNames。實質上,我將這些數據合併到一個列表中具有不同CategoryNames的對象中。有沒有更好的方法來合併這些數據?我覺得這樣做太廣泛而無法合併數據。我不知道如何GROUP BY也可以在查詢中工作。

回答

0

你應該使用Group by,然後SelectMany然後string.join爲每個claasified id出現categaryname標籤。