У меня есть запрос, который объединяет 2 таблицы и возвращает этот результат:

Это связано с левым соединением, которое я выполняю по моему запросу. По ходу дела, чтобы превратить это в один объект, я делаю следующее:
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>
, где я храню разные CategoryoreyNames. По сути, я объединяю эти данные в один объект с разными именами категорий в списке. Есть ли лучший способ объединить эти данные? Я чувствую, что это слишком обширно, чтобы объединить данные. Я не уверен, как GROUP BY
будет работать в запросе также.