Я использую компонент «SQLite.NET» в своем проекте Xamarin. У меня есть несколько «моделей/классов», таких как «Документ», «Проект». Каждая модель имеет свою собственную таблицу в SQLite.Xamarin SQLite.NET Generic TableQuery
Чтобы получить данные из таблицы, я использую следующий метод:
List<Document> documents = new SQLiteConnection("..DB-path..").Table<Document>.ToList();
Он отлично работает, но для каждой таблицы, я должен сделать тот же код, и только изменение модели типа в код выше.
Теперь я хотел бы написать общий метод, где я могу сделать:
List<T> data = new SQLiteConnection("..DB-path..").Table<T>.ToList();
Но, к сожалению, я получаю следующее сообщение об ошибке:
'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()'
Кто-нибудь знает, как создать общий метод для проблемы выше?
Заранее благодарен!
Можете ли вы включить весь метод, который содержит вашу строку кода, используя общие типы? Как вы объявляете 'T'? В качестве дополнительной заметки вам не нужно создавать новый 'SQLiteConnection' каждый раз, когда вы обращаетесь к базе данных, на самом деле считается, что лучше использовать одноточечное соединение. – dylansturg
Если вы также хотите получить общие запросы, ознакомьтесь с этим: http://stackoverflow.com/questions/29050400/generic-repository-for-sqlite-net-in-xamarin-project/29856945#29856945 – xleon