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