Я, скорее всего, несут ответственность за перенос приложения vb6 на C#. Это приложение представляет собой приложение Windows, которое взаимодействует с db доступа. Доступ к данным инкапсулирован в основные бизнес-объекты. Один класс для одной таблицы в основном. Существующие бизнес-объекты vb6 читают и записывают в БД через DAO. Несколько раз я писал DAL и ORM, но все они нацелены только на SQL Server. Этому нужно будет настроить целевой доступ и сервер sql. В предыдущих проектах я бы поместил строки SQL в частные части бизнес-объекта и, возможно, переместил избыточный код sql, как соединение, создав команду, в общий базовый класс, чтобы уменьшить код.Где вы помещаете SQL-выражения в свои проекты C#?
На этот раз я думаю о написании строк SQL в файле .settings или в другом текстовом файле типа ключа/значения. Затем я написал утилиту sql, чтобы отредактировать этот файл, и позвольте мне запустить и протестировать параметризованные запросы. Эти запросы будут ссылаться по имени в бизнес-объекте, а не на встраивание sql в код.
Я знаю, что стандартный подход заключается в создании DAL для каждой целевой базы данных и в состоянии конфигурации, которое DAL использовать. Я действительно не хочу создавать два класса DAL для каждой базы данных. Похоже, что было бы меньше кода, если бы я просто ссылался на правильный запрос по имени ключа и имел надлежащий тип соединения.
Итак, вы, ребята, делаете такие вещи? Как бы вы столкнулись с этой проблемой? Что лучше всего подходит для вас?
Спасибо!
Я использовал этот подход, и мне это нравится. В отличие от большинства людей, я не согласен с тем, что я могу менять код «на лету» во время выполнения, даже простые инструкции SQL, поэтому тот факт, что он скомпилирован вместе с сборкой, является для меня плюсом. – Chris
Рад услышать, что этот подход используется и приветствуется другими! :-) И я согласен - иногда выпечка в ваши скомпилированные биты - плюс. –
Вместо namespacePart используйте this.GetType(). Пространство имен для текущей, динамической версии и typeof (Program) .Namespace для static. Конечно, когда вы ставите его в класс программы как статический. Не забывайте, что, когда ваш SQL-файл находится в каталоге SQL, обратитесь к нему с помощью «SQL.StatementName.sql». – Harry