Cześć Wszystkim,
Mam pewien dylemat na temat właściwej konstrukcji obsługi SQL w C#. Mam kilka tabel w bazie (w moim przypadku to baza sqlite) I tu przy budowie klasy do obsługi sql pojawia się problem. Która konstrukcja będzie właściwa:
- Metoda z klasy sql przyjmuje jako argument kompletny string jaki jest przekazywany do sqlCommnad. Dzięki temu mam możliwość budowania zapytania sql na poziomie obiektu operującego danymi, nie ma konieczności tworzenia przeciążonych klas w zależności od ilości aktualizowanych / dodawanych pól i nazewnictwa pól w tabeli.
public void SaveNew(string sqlCommandText)
{
//ciało metdy
}
- Metoda z klasy sql przyjmuje jako argument nazwę tabeli oraz nazwy pól bazy i wartości. Taka konstrukcja pozwala wywołać metodę z klasy sql podając docelową tabelę, nazwę pola oraz wartość, wymaga to jednak w zależności ilości wprowadzanych danych do tabeli w jednym zapytaniu przeciążania metody, podstawowa metoda przyjmuje tylko jedną wartość do zmiany / zapisu w tabeli, przeciążone metody zapewniają obsługę bazy w przypadku kiedy w jednym zapytaniu sql chcemy zaktualizować / zapisać więcej niż jedno pole.
public void SaveNew(string table, string field, string value)
{
}
public void SaveNew(string table, string field1, string value1, string field2, string value2)
{
}
I tu pytanie do speców, jak sensownie to rozwiązać, by było wszystko czytelne i możliwe w przyszłości do adaptacji do obsługi nowo dodanych tabel.