2013-03-20 4 views
6

W naszej firmie współpracujemy z kilkoma systemami baz danych (MySQL, MSSQL, PL/SQL, SQlite i SQLCe) dla różnych projektów. Z tego powodu stworzyliśmy bibliotekę, która umieszcza wszystko w miłym interfejsie, w którym możemy połączyć się z każdą bazą danych, nie martwiąc się o to, która baza danych jest już w tyle. Ale ta biblioteka zawsze wymagała instalacji każdej bazy danych na komputerze klienta, ponieważ .Net nalegał, że (z powodu odniesień). Dlatego użyliśmy MEF do tworzenia wtyczek do baz danych, w których aplikacja ładuje tylko odpowiednią wtyczkę podczas uruchamiania i nie potrzebujemy żadnych innych systemów baz danych zainstalowanych w systemie hosta.Biblioteka zarządzania bazą danych

W każdym razie nadal mamy problemy ze względu na różnice w każdej bazie danych. Załóżmy, że chcemy mieć procedury, które automatycznie generują wymagane tabele i dane w docelowej bazie danych, jeśli nie są dostępne. Lub jeśli różne bazy danych używają różnych typów danych. Sprawy stają się coraz bardziej skomplikowane i na razie interesuje nas również używanie LINQ2SQL, który wydaje się nie być w stanie obsłużyć MySQL, SQlite i PL/SQL.

Moje pytanie:

Czy istnieje free/OSS C# biblioteka, która przejmie te zadania? Gdzie możemy mieć pełną kontrolę nad naszymi bazami danych bez zastanawiania się, która baza danych jest teraz w tyle?

Odpowiedz

0

Wszystko, czego potrzebujesz. Ta struktura zawiera dostawców dla wielu silników baz danych, a także mechanizm migracji, który może dostosować bazę danych do aplikacji, w zależności od modelu.

4

Wszelkie starsze biblioteki ORM będzie wykonywać pracę

Sprawdź this miejsce, aby zobaczyć porównanie funkcji i wydajności popularnych bibliotek ORM

+0

Ostatnie kilka dni spędziłem na studiowaniu Entity Framework i nadal nie jestem pewien, czy to pasuje do naszych potrzeb. Mam nadzieję, że możesz wyjaśnić kilka punktów: 1) Wydaje się, że EF w dużej mierze zależy od środowiska Visual Studio, również app.config, ale mamy własne rozwiązanie konfiguracyjne. Jak określić ciąg połączenia bez użycia app.config? 2) Kiedy EF tworzy nową bazę danych, wydaje się tworzyć SQLCeDB. Czy to jest konfigurowalne? 3) Czy jest możliwe posiadanie wielu połączeń do różnych baz danych w tym samym czasie? – Neurodefekt

+0

1) Możesz użyć EF całkowicie bez Visual Studio, na przykład najpierw sprawdź kod EF, jednak projektanci VS są przydatni i przydatni podczas tworzenia modelu z istniejącej bazy danych, ale nadal nie są wymagane. 2) EF może pracować z każdą nowoczesną bazą danych 3) Sprawdź http://stackoverflow.com/questions/2659942/entity-framework-4-and-multiple-database – jezzarax

0

NHibernate byłoby mój wybór. Jest łatwiejszy w użyciu, jeśli uzyskasz dostęp do niego przez warstwę Castle ActiveRecord.