Witam !
Ostatnio zastanawiam się, czy jest możliwe, aby w projekcie .NET stworzyć taką warstwę abstrakcji, aby zmiana bazy danych mogła być możliwa, bez zmiany w kodzie.
Co do ADO.NET Commands itd to można stworzyć X interfaców i tworzyć dane metody, które zwracają dane wartości, następnie można śmiało podmieniać implementacje interfacu do np. MySQL, MsSQl, reszta aplikacji będzie działała ok.
Zastanawiam się bardziej, czy coś podobnego jest możliwe w ORM-ach. Do EF możemy użyć IObjectSet<klasa> i co prawda możemy wykorzystać wszystkie bazy obsługiwane przez EF, ale nadal jesteśmy skazani na EF.
Czy istnieje takie rozplanowanie aplikacji trójwarstwowej, aby ostatni zabieg był możliwy ? Czyli zamiana ORM z EF na np. Nhibernate.
Czy korzystając z wzorca Repository, można wykonać takie cudo. Chcę powiedzmy, żeby klasy repository (głównie jakieś linq) były niezmienione.