Почему конструктор набора данных меняет регистр моих объектов схемы?

У меня есть два файла xsd с одинаковой точной схемой. Первый был сгенерирован из соединения SQL, а другой сгенерирован из соединения FoxPro OleDb конструктором наборов данных. Я не могу использовать один и тот же XSD для генерации моих адаптеров таблиц и таблиц, потому что поставщики SQL и OleDb генерируют разные типы. Я не могу использовать EF, потому что он не поддерживает FoxPro OleDb, или, по крайней мере, официально.

У меня также есть проблема, когда файл SQL xsd имеет имена таблиц, полей и адаптеров таблиц в UPPERCASE и соединение FoxPro OleDb в нижнем регистре. Это создает ситуацию, когда я не могу обмануть их приведения из базового типа.

Есть ли подходящее решение этой проблемы или мне нужно иметь два набора кода на моем уровне DAL? Я бы не хотел переписывать операции CRUD для всех этих таблиц.

1 ответ

Для пояснения, вы подключаетесь к ОБА "серверам" для данных? Вы пытаетесь скопировать данные с одного сервера на другой? Вы всегда можете получить свой запрос для каждого результата с одинаковыми именами столбцов и сопоставимыми типами данных (текст против символа, целое число работает в обоих случаях, памятка против блоба и т. Д.).

На самом деле я написал объект-оболочку для запроса данных, основанный на типах INTERFACE, для выполнения запроса и обновления один раз для каждого соединения с базой данных, а затем подклассов из этого для соответствующей отдельной таблицы, так что большая часть основной работы выполняется один раз.

Что касается интерфейсов, я имею в виду IDbConnection (SQLConnection против OleDbConnection), IDbCommand (SQLCommand против OleDbCommand) и т. Д., И он хорошо работает для подключения к базам данных SQL, MySQL, Access, SQLite и Visual Foxpro.

Все это, как говорится, что / как вы используете ваши файлы XSD. С небольшим уточнением я мог бы предложить немного больше помощи.

Другие вопросы по тегам