Если вам нужно использовать только операторы ANSI SQL, которые должны быть реализованы всеми базами данных, тогда да, вы можете просто использовать ADO.NET.
По моему опыту, основная проблема с кодом, не зависящим от базы данныхэто использование суррогатных ключей, таких как последовательности или поля автонумерации, поскольку все базы данных реализуют их по-разному.
Если вам нужно использовать функции, которые различаются в разных базах данных, то я не думаю, что это достаточная причина, чтобы пойтидля объектно-реляционного картографа, такого как NHibernate - делайте это, только если у вас есть другие причины для этого.Вы можете реализовать собственную обработку различий в синтаксисе, достаточно легко генерируя разные SQL для разных баз данных.