Я читаю данные из XML-файлов в строго типизированный DataSet
. Данные заканчиваются в нескольких таблицах; могу ли я запускать запросы против него, чтобы создать денормализованное представление для отображения в DataGrid
? входЗапросить DataSet
Пример:
<PeopleFile>
<address>
<street>123 Some Street</street>
<town>Anytown</town>
<resident>
<first>Jane</first>
<last>Doe</last>
</resident>
<resident>
<first>John</first>
<last>Doe</last>
</resident>
</address>
<address>
<street>456 Tree Street</street>
<town>Westwood</town>
<resident>
<first>Mary</first>
<last>Jones-Smith</last>
</resident>
<resident>
<first>Mike</first>
<last>Smith</last>
</resident>
<resident>
<first>Kate</first>
<last>Smith</last>
</resident>
</address>
</PeopleFile>
Желаемый результат:
123 Some Street Anytown Jane Doe
123 Some Street Anytown John Doe
456 Tree Street Westwood Mary Jones-Smith
456 Tree Street Westwood Mike Smith
456 Tree Street Westwood Kate Smith
EDIT: Я хотел бы добавить, что в дополнение к нескольким таблицам в файле, мой реальные данные также разделены между несколькими файлами, которые AFAIK будет требуют загрузки в отдельный DataSets
.
Файлы следуют нескольким различным схемам, поэтому при минимальном объединении() ing не будет работать. –
Существует также Merge() на уровне таблицы. Но вам нужно будет немного рассказать о наборах данных, например, в таблицах есть идентификаторы и т. Д. –
Да. Мое приложение было первоначально написано с использованием XmlSerialization, и все отдельные объекты имели ключевые значения, уникальность которых должна поддерживаться в коде. Выход из этого - значительная часть того, почему я пытаюсь перейти на чтение в DataSets. Представление DataSet разбило некоторые объекты на несколько таблиц (например, где A содержал массив из B); в этих случаях ключи создавались вручную. –