Ich arbeite auf einem asp.net mvc-5 mit Entity-Framework 6. jetzt verwende ich keine Art auf generische Repositories, wie die hier genannten: -Was kann/kann nicht in einem generischen Repository getan werden
&
nun das generische Repository gibt Ihnen ein Gefühl, dass Sie alles in allgemeiner Weise tun können .. aber in diesen zwei Links scheint, was generilzed werden kann sind die grundlegenden Operationen für erhalten, hinzufügen, löschen & ändern, die von Defualt innerhalb Entity Framework bereitgestellt werden. Also kann jemand auf thes Frage regreging mit generischen Repositories mit EF-6 & MVC-5: -
1.Ist es wirklich ein guter Ansatz der Verwendung von Generic Repo? Wie es scheint generische Repo wird nur, was EF bereits zur Verfügung stellen !!
2.Let sagen, ich habe zwei Eltern-/Kind (DataCenter-/Zone) Objekte: -
public class DataCenter
{
public int ID { get; set; }
public string Name { get; set; }
public byte[] timestamp { get; set; }
public virtual ICollection<Zone> Zones { get; set; }
}
public class Zone
{
public int ZoneID { get; set; }
public string Name { get; set; }
public int DataCenterID { get; set; }
public virtual DataCenter DataCenter { get; set; }
}
jetzt den Generic-Repository ich bekommen kann, Hinzufügen, Bearbeiten, Löschen Sie diese 2 Objekte mit dem gleichen generic Repomethoden. aber wir sagen, dass ich alle Zonen abrufen möchten zu einem bestimmten Datacenter wie folgt bezogen werden: -
var results = entity.DataCenters.SingleOrDefault(a => a.ID == id).Zones.Where(a => a.Name.Contains("1"));
kann so die generische Repository Unterstützung eine solche Abfrage, in einer Weise, die ich kann die Abfrage mit einem anderen Objekt wiederverwenden Typen (außer Datacenter & Zonen). Zum Beispiel, um eine generische Abfrage zu haben: - um ein Eltern-Objekt nach ID zu bekommen und für sein Kind, um die Kinder zu bekommen, deren Namen das Wort "1" enthalten? und was passiert, wenn die Eltern mehrere Kindertypen haben !! Wird das generische Repository nicht-generische Abfragen und Operationen unterstützen?
A) ja, weil Sie EF mit ServiceStack ersetzen konnten, wenn Sie wollten; es ist immer gut, wenn möglich zu entkoppeln. B) Ja, im Prinzip könnten Ihre Repository-Implementierungen die Handarbeit für Sie übernehmen und die referenzierten Objekte aus anderen Tabellen abrufen. ServiceStack.Ormlite kann es tun. https://github.com/ServiceStack/ServiceStack.Ormlite#reference-support-poco-style –
@MeirionHughes jetzt verwende ich nicht ServiceStack ich verwende nur EF-6 so wird EF Unterstützung meine obige Abfrage, die eine Abfrage verwenden Eltern/Kind Objekte? –