Я пишу программу, которая собирает множество отдельных фрагментов данных из базы данных MySQL и сериализует эти данные в XML-документ.Какой самый аккуратный способ сбора большого количества данных в .Net
В моем документе XML есть пять основных групп, каждая из которых содержит 3 подгруппы, и я собираю около 100 фрагментов данных.
Информация о контенте представлена на веб-сайте магазина. Сначала я запускаю запрос для разработки и возвращает следующий идентификатор заказа, который необходимо отправить клиенту, а затем использовать этот идентификатор заказа, чтобы отбросить каждую часть данных (адресная строка 1, адресная строка 2, купленные предметы и т. Д.) Из различные таблицы в реляционной базе данных.
Независимо от того, в каком направлении я иду по этому поводу, это беспорядочно. Я заканчиваю массивными методами, с одной переменной, определенной для каждой части данных, которая мне нужна, и каждая переменная равна возвращаемому значению метода, который у меня есть, который выполняет запрос к моей базе данных MySQL. Некоторым из данных нужна дополнительная логика (например, некоторые данные необходимо очистить, некоторые даты необходимо отформатировать определенным образом для XML).
Несколько пунктов
- Я не создавал структуру базы данных или веб-сайт покупок, и я не могу изменить его
- У меня есть рабочая программа, которая работает в данный момент. Это программа, которую я написал месяцев назад, что я возвращаюсь, чтобы улучшить
Некоторые примеры кода ниже:
string valueOne = myMethod("SELECT `valueOne` FROM `tableOne` WHERE `OrderID` = '12345';");
string valueTwo = myMethod("SELECT `valueTwo` FROM `tableOne` WHERE `OrderID` = '12345';");
string valueThree = myMethod("SELECT `valueThree` FROM `tableTwo` WHERE `OrderID` = '12345';");
int valueFour = Convert.ToInt32(myMethod("SELECT `valueFour` FROM `tableThree` WHERE `OrderID` = '12345';"));
string valueFive = myMethod("SELECT `valueFive` FROM `tableThree` WHERE `OrderID` = '12345';");
if(valueFive == "FooBar")
{
//Do Stuff
}
string valueSix = myMethod("SELECT `valueSix` FROM `tableThree` WHERE `OrderID` = '12345';");
DateTime valueSeven = DateTime.Parse(myMethod("SELECT `valueSeven` FROM `tableFour` WHERE `OrderID` = '12345';"));
string valueEight = myMethod("SELECT `valueEight` FROM `tableFive` WHERE `OrderID` = '12345';");
string valueNine = String.Format("QWERTY - {0} - YTREWQ", myMethod("SELECT `valueNine` FROM `tableSix` WHERE `OrderID` = '12345';"));
string valueTen = myMethod("SELECT `valueTen` FROM `tableSeven` WHERE `OrderID` = '12345';");
MyClass fooBar = new MyClass()
{
valueOne = valueOne,
valueTwo = valueTwo,
valueThree = valueThree,
valueFour = valueFour,
valueFive = valueFive,
valueSix = valueSix,
valueSeven = valueSeven,
mySecondClass = new MySecondClass()
{
valueEight = valueEight,
valueNine = valueNine,
myThirdClass = new MyThirdClass() { valueTen = valueTen }
}
};
SerializeToXML<MyClass>(fooBar);
Представьте себе, что, но с гораздо большим количеством данных. Да, это работает, но это неопрятно, трудно поддерживать и, в более общем плане, не очень хорошо.
Итак, мой вопрос в том, как правильно собирать большие объемы данных в приложении .Net?