Разрабатываемое веб-приложение ASP.NET должно поддерживать два различных типа баз данных, а именно Access и MS SQL Server 2008 Express.
У меня уже есть строки подключения для каждого типа базы данных, хранящиеся в web.config., и у меня есть другое значение web.config, которое указывает, какой из них использовать.Так что я могу получить правильную строку подключения без проблем.
Большая проблема возникает с объектами базы данных.Для Access, который я уже реализовал, я использую объекты OleDbConnection, OleDbCommand и OleDbDataReader в коде для выполнения вызовов базы данных.
Похоже, что для SQL Server я не могу использовать эти объекты, а скорее мне нужно будет использовать объекты SqlConnection, SqlCommand и SqlDataReader, чтобы делать по существу одни и те же вещи.
Я хочу использовать как можно больше моего текущего кода, и мне не нужно создавать два отдельных блока для каждого типа базы данных.(У меня есть много методов, которые принимают OleDbDataReader в качестве параметра - я не хочу, например, делать 2 из каждого из этих методов.)
Я заметил, что оба объекта подключения наследуются от DbConnection,И то же самое верно для считывателей данных (DbDataReader) и команд (DbCommand).
Можно ли взять мой существующий код для Access, заменить все объекты Ole объектами Db, а затем привести эти объекты к нужному типу в зависимости от текущего типа базы данных?
Существуют ли рекомендации по поддержке двух типов баз данных в одном приложении ASP.NET?
Я могу добавить часть своего кода, если это поможет.Спасибо.