У меня есть запрос LINQ к нескольким таблицам данных следующим образом:
query = _
From bidInfo In dataset.BidInfo.AsEnumerable() _
Join projectInfo In dataset.ProjectInfo.AsEnumerable() _
On projectInfo.Field(Of String)("Project") Equals bidInfo.Field(Of String)("Project") _
Where Not bidInfo.IsAwardedNull AndAlso bidInfo.Awarded.Equals("Yes") And Not bidInfo.IsDate_AwardedNull AndAlso DateTime.Compare(bidInfo.Item("Date Awarded"), latestCheck) >= 0 _
Select New With { _
.Job_Number = projectInfo.Field(Of Object)("Job Number"), _
.Project = projectInfo.Field(Of String)("Project"), _
.Contractor = bidInfo.Field(Of String)("Contractor"), _
.Date = Convert.ToDateTime(bidInfo.Field(Of Object)("Date Awarded"))}
Я помещаю результаты в таблицу DataView, а затем сортирую и прочее. Все это работает хорошо, за исключением случаев, когда запрос ничего не возвращает (поскольку нет ничего, что соответствовало бы критериям, это нормально). Если он не возвращает ни одной строки, результирующий DataTable не создает столбцы, что неприемлемо.
Есть ли способ динамически получить, какие столбцы ДОЛЖНЫ быть возвращены запросом? У меня есть куча запросов, и было бы ужасно беспорядочно, если бы я создал статическую таблицу данных для каждого из них. Вероятно, есть очень простое решение, которое я просто еще не смог найти.
Спасибо за любую помощь!
ИЗМЕНИТЬ:
Я отметил ответ Neolisk как ответ, потому что он объясняет, почему у меня возникла проблема (и показывает, что я в значительной степени продублировал вопрос). Однако на самом деле проблема не решена. Если я найду достойное решение, я опубликую его здесь, если у кого-то еще будет такая же проблема.