Это скорее концептуальный вопрос, чем что-либо еще.
У меня есть базовый класс с именем «RawReader».
Он устанавливает структуру для классов, чтобы наследовать ее и читать в определенных данныхsystems.
Например, я хочу, чтобы приложение прочитало в известном формате базу данных FoxPro, файл CSV или базу данных SQL (в настоящее время существует еще около 8 форматов), затем передало его через веб-сервис и создалабаза данных SQL из него.
У меня все работает с CSV, FoxPro, Access, Excel и т. д. Достаточно просто.
Классы, которые наследуют RawReader, такие как RawCSV, RawFoxPro, RawAccessвсе возвращают структуру, которая содержит набор данных в качестве одного из членов.Набор данных содержит данные из необработанной системы.Веб-сервис получает эту структуру, создает таблицы SQL и загружает в нее данные.Это уже закодировано и прекрасно работает.
Теперь моя проблема заключается в чтении на SQL.Очевидно, что я мог бы пойти по тому же пути, прочитать удаленную базу данных SQL в набор данных, перенести набор данных, как указано выше, и т. Д ... Моя проблема возникает, когда я чувствую, что не имеет большого смысла передавать базу данных SQL внабор данных, передайте его через веб-сервис, а затем попытайтесь программно воссоздать базу данных SQL.Я чувствую, что теряю много подробностей из базы данных SQL (размеры полей, расширенную информацию и т. Д.). На практике проще создать резервную копию базы данных, преобразовать ее в объект потока и передать резервную копию.к веб-сервису.Но вот в чем проблема ...
Поскольку все классы наследуются от базового класса, они настроены на возврат DataSet.Хакерский способ состоит в том, чтобы просто добавить объект потока в возвращаемую структуру и в моем веб-сервисе добавить другой код, чтобы сделать особый случай для источников SQL, но я пытался избежать этого.
Любые мысли о"правильный" способ сделать что-то подобное?