Apa yang harus Anda lakukan adalah menggunakan alat ORM yang mengabstraksi database untuk Anda (nHibernate), atau menentukan satu set antarmuka yang mewakili DAL Anda dan kemudian menggunakan implementasi IoC (Ninject, Castle, dll) untuk menukar yang mendasarinya implementasi sesuka hati, asalkan mengimplementasikan antarmuka.
Namun, merancang antarmuka yang tahan masa depan (yaitu, dapat mengatasi keanehan halus bekerja dengan database lain) tidak sederhana, sehingga Anda tetap perlu melakukan perubahan.
Saya akan melakukan salah satu dari dua hal, dalam urutan ini:
- Tinjau jika Anda benar-benar perlu menukar database.
- Menelusuri rute alat ORM karena banyak kerja keras yang dilakukan untuk Anda.
Contoh yang baik untuk mengabstraksi database, belum tentu DAL itu sendiri adalah Blok Aplikasi Akses Data Perpustakaan Perusahaan dari Microsoft.