Ich habe mehrere Projekte mit dem Repository-Muster (Interface => Repository) gemacht, aber jetzt stehe ich eine neue Herausforderung (nicht eine große) mit einem meiner Mitarbeiter-Code. Wir implementieren einen generischen Dienst, der alle CRUD-Operationsmethoden für alle Entitätsklassen enthält.Implementieren generischer Service für CRUD-Operationen mit EF6
Wir Datenbank verwenden, werden zunächst in diesem Projekt und haben die folgende Struktur,
aspx.cs> entityClass (AppUser)> Allg Service> Entity-Modell.
public class UserServices : GenericServices<User>
{ //Implemented methods }
Und wie Generic Service:
public class GenericServices<T> where T : class
{
App_dbEntities _db;
IDbSet<T> ent;
public GenericServices()
{
_db = new App_dbEntities();
ent = _db.Set<T>();
}
public IEnumerable<T> Select()
{
return ent;
}
public T Select(string id)
{
??
}
}
Ich versuche, die Einheiten der Eigenschaften zu handhaben, aber da dieses generisch ist, es nicht weiß, welche Einheit im Moment ist Umgang . Ich habe einige Beispiele gesehen, die das Prädikat als Funktionsparameter verwenden. Bitte gib mir eine Hand.
public virtual T Select(params object[] keyValues)
{
return ent.Find(keyValues);
}
Auf diese Weise können auch Einheiten mit Composite Primärschlüssel finden:
Sie die 'find' Methode der IDbSet Schnittstelle zu verwenden:' Rückkehr Eintr. Finde (id) ' – Thomas