Wiele baz danych do jednej aplikacji

Odpowiedz Nowy wątek
2018-12-20 10:13
0

Witajcie!
Mam zrealizować zadanie utworzenia klas, które będą odpowiadały za połączenie z bazą danych. Chodzi o to by użytkownik w aplikacji mógł sobie wybrać dowolną bazę. Czy ktoś z was ma może jakieś materiały na ten temat? Może ktoś robił coś podobnego?
Pozdrawiam!

Pozostało 580 znaków

2018-12-20 10:35
0

Nie wiem czy to jest dobre rozwiązanie, ale ja przeważnie buduje ConnectionString na podstawie tego co wybierze użytkownik

public static class SQL
{
    public static string ConnectionString(string instance, string databaseName, string user, string pass)
    {
        return [email protected]"Data Source={instance};Initial Catalog={databaseName};Persist Security Info=False;User ID={user};Password={pass}";
    }
}

Możesz też zamiast stringów wrzucić tam jakiś obiekt konfiguracji

public static class SQL
{
   public static string ConnectionString(Config c)
   {
       return [email protected]"Data Source={c.Instance};Initial Catalog={c.DatabaseName};Persist Security Info=False;User ID={c.User};Password={c.Password}";
   }
}

Dalej to już sobie chyba dasz radę.

Pozostało 580 znaków

2018-12-20 11:21
0

Ok, to w sumie dobre rozwiązanie jeśli chodzi o connectionstring. A jak później piszesz klasy do wyciągania danych? Dla każdego typu bazy danych oddzielnie?

Pozostało 580 znaków

2018-12-20 11:24
0

W jakim sensie dla każdego typu bazy? Czyli użytkownik wybiera dowolną technologię bazodanową czy dowolną bazę danych w jednej i tej samej technologii? To spora różnica

Pozostało 580 znaków

2018-12-20 11:27
0

Chodzi o dowolną technologię. Własnie taka klasa musi mieć unikatowe metody(abstrakcyjne), po których bazy będą mogły dziedziczyć.
Taka abstrakcja dla wszystkich typów baz by później użytkownik mógł dowolnie je podmienić.(na przykład za pomocą delegatów).

Pozostało 580 znaków

2018-12-20 11:30
0

Chodzi o to by użytkownik w aplikacji mógł sobie wybrać dowolną bazę.

Z tego co napisałeś w poście nie wynika, że chodzi o technologie. Wyszedłem z założenia, że próbujesz tylko zmieniać bazę w tej samej technologii i jest nim MS SQL. Ja korzystam tylko z tej technologii, więc niestety nic więcej nie jestem w stanie pomóc.

Pozostało 580 znaków

2018-12-20 12:34
0

Jasne, no faktycznie dosyć nieszczegółowo opisałem problem .

Pozostało 580 znaków

2018-12-20 16:31
0

Z tego co wnioskuję, to chodzi Ci o ORM https://pl.wikipedia.org/wiki/Mapowanie_obiektowo-relacyjne
Poczytaj sobie na ten temat no i może o Code First http://www.entityframeworktut[...]first/what-is-code-first.aspx

Pozostało 580 znaków

2018-12-20 16:33
0

@Deltech:
Nie chodzi mu o ORM, tylko o dynamiczne przełączanie między technologią bazodanową. Chce jedną aplikację, w której użytkownik będzie decydował czy chce się zalogować do MySQL, MS SQL, Postgre, SQLite itp itd. Pozwolić na odpowiednią konfigurację połączenia w danej technologii.

Pozostało 580 znaków

2018-12-20 16:35
0

Nie chodzi mu o ORM, tylko o dynamiczne przełączanie między technologią bazodanową.

W takim przypadku zastosowanie ORM'a to jedyna słuszna metoda.

Pozostało 580 znaków

2018-12-20 16:38
0

Masz jakiegoś konkretnego ORM'a na myśli?

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0