Attualmente sto cercando di progettare un'interfaccia per un WebService che possa accedere a diversi database MySQL. Ci saranno 4 operazioni disponibili, Aggiungi (), Leggi (), Aggiorna () ed Elimina ().
Il WebService deve semplicemente assemblare un'istruzione SQL basata sul metodo chiamato ed eseguirla sul database di destinazione. Ma ora sto cercando di trovare una buona firma del metodo che fornisca tutte le informazioni necessarie al WebService ed è semplice da usare. Quindi, se voglio assemblare un'istruzione INSERT quando è stato chiamato il metodo Add (), non so come posso passare tutte le informazioni della colonna con i valori e i tipi corrispondenti. Ad esempio, .NET DateTime deve essere memorizzato con il tipo di dati MySQL per data / ora. Quindi ho bisogno di una specie di oggetto wrapper che controlli le proprietà tramite riflessione per ottenere il tipo.
Ecco alcuni pensieri:
Add(String db, String table, Dictionary<String, object> dataSet);
Read(String db, String table, String column, filter?);
Update(String db, String table, String idToReplace, Dictionary<String, object> dataSet);
Delete(String db, String table, String idToDelete);
Non sono sicuro di come specificare una possibilità di filtro per l'istruzione SELECT nel metodo Read (). Inoltre, non so come passare le informazioni sui parametri nei metodi Add () e Update (). Non voglio salvare solo i valori stringa nel db, mi piacerebbe aver passato alcune informazioni sul tipo in modo che il WebService possa abbinarle ai corrispondenti tipi di dati MySQL.