Вы хотите использовать драйвер SQL Server. Я понимаю, что вы пытаетесь сделать, но способ поддержки нескольких баз данных заключается в добавлении еще одного уровня абстракции. Вы можете сделать это многими способами. Но вы помещаете специфичный для базы данных код на границу иерархии классов. Следовательно, каждый класс может получить преимущества специфической функциональности базы данных, но вызывающие абоненты более высокого уровня не знают или не заботятся о том, какая база данных используется ниже. Что касается ORM, я предпочитаю LLBLGen , но это только мои предпочтения.
Кроме того, просто чтобы уточнить, LINQ не является специфическим для SQL Server. Это LINQ-to-SQL. LINQ - это технология запросов, которую вы можете использовать в LINQ-to-SQL, LINQ-to-Entities, LINQ-to-objects и даже LLBLGen поддерживает LINQ.