Generic Repository für SQLite-Net in Xamarin Project

Ich frage mich, ob es eine Möglichkeit gibt, ein generisches Repository für mein Xamarin-Projekt zu schreiben, anstatt für jede Entität in meinem Objekt ein anderes Repository zu schreiben. Der XamarinTasky Pro Beispiel: Ein Repository für die Task-Entität, da dies die einzige Entität ist, über die sie verfügt.

In meinem eigenen Projekt habe ich mehr als eine Entität. Meine Frage ist also, wie ich das folgende Kunden-Repository generisch machen kann, damit der ProductManager, EmployeeManager usw. es verwenden kann. Wenn Sie ein Beispiel oder einen Blogbeitrag kennen, weisen Sie mich bitte in die richtige Richtung

namespace App.DataLayer
{
    public class CustomerRepository
    {
        private ProntoDatabase _db = null;
        protected static string DbLocation;
        protected static CustomerRepository Me;

        static CustomerRepository()
        {
            Me = new CustomerRepository();
        }

        protected CustomerRepository()
        {
            //set the db location;
            DbLocation = DatabaseFilePath;

            //instantiate the database
            _db = new ProntoDatabase(DbLocation);
        }


        public static string DatabaseFilePath
        {
            get
            {
                const string sqliteFilename = "CustomerDB.db3";
                var libraryPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                var path = Path.Combine(libraryPath, sqliteFilename);
                return path;
            }
        }


        // CRUD (Create, Read, Update and Delete) methods

        public static Customer GetCustomer(int id)
        {
            return Me._db.GetItem<Customer>(id);
        }

        public static IEnumerable<Customer> GetCustomers()
        {
            return Me._db.GetItems<Customer>();
        }

        public static int SaveCustomer(Customer item)
        {
            return Me._db.SaveItem(item);
        }

        public static int DeleteCustomer(int id)
        {
            return Me._db.DeleteItem<Customer>(id);
        }
    }