Универсальный репозиторий для SQLite-Net в проекте Xamarin

Мне интересно, есть ли способ написать общий репозиторий для моего проекта Xamarin по сравнению с написанием другого репозитория для каждой сущности в моем объекте. КсамаринTasky Pro Например, есть один репозиторий для объекта Task, потому что это единственный объект, который у него есть.

В моем собственном проекте у меня есть несколько сущностей, поэтому мой вопрос заключается в том, как сделать следующий репозиторий клиентов таким, чтобы он стал универсальным, чтобы его могли использовать ProductManager, EmployeeManager и т. Д. Если вы знаете пример или сообщение в блоге, пожалуйста, укажите мне правильное направление

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);
        }
    }

Ответы на вопрос(0)

Ваш ответ на вопрос