Ich benutze die Komponente "SQLite.NET" in meinem Xamarin-Projekt. Ich habe mehrere "Modelle/Klassen" wie "Document", "Project". Jedes Modell hat seine eigene Tabelle in SQLite.Xamarin SQLite.NET Generic TableQuery
Um die Daten aus einer Tabelle zu erhalten, ich bin die folgende Technik:
List<Document> documents = new SQLiteConnection("..DB-path..").Table<Document>.ToList();
Es funktioniert gut, aber für jede Tabelle Ich habe den gleichen Code zu tun und nur den Modelltyp zu ändern in der Code oben.
Nun würde Ich mag eine generische Methode schreiben, wo ich tun kann:
List<T> data = new SQLiteConnection("..DB-path..").Table<T>.ToList();
Aber leider bekomme ich folgende Fehlermeldung:
'T' must be a non-abstract type with a public parameterless constructor in order to use it as parameter 'T' in the generic type or method 'SQLiteConnection.Table()'
Kennt jemand eine Möglichkeit, eine generisch zu schaffen Methode für das obige Problem?
Vielen Dank im Voraus!
Können Sie die gesamte Methode, die Ihre Codezeile enthält, mit generischen Typen verwenden? Wie erklärst du 'T'? Als Nebenbemerkung müssen Sie nicht jedes Mal, wenn Sie auf die Datenbank zugreifen, eine neue 'SQLiteConnection' erstellen. In der Tat wird es als bessere Praxis angesehen, eine Singleton-Verbindung zu verwenden. – dylansturg
Wenn Sie auch generische Abfragen möchten, überprüfen Sie dies: http://stackoverflow.com/questions/29050400/generic-repository-for-sqlite-net-in-xamarin-project/29856945#29856945 – xleon