Универсальный репозиторий для 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);
}
}