Ich habe EntityFramework Muster zusammen mit Repository und Unit Of Work implementiert. Die Implementierung ähnelt Code Project Repository Example, jedoch brauche ich eine Erweiterung für die Unit Of Work.Generische Einheit der Arbeit
Die Arbeitseinheit
public class GenericUnitOfWork : IDisposable
{
// Initialization code
public Dictionary<Type, object> repositories = new Dictionary<Type, object>();
public IRepository<T> Repository<T>() where T : class
{
if (repositories.Keys.Contains(typeof(T)) == true)
{
return repositories[typeof(T)] as IRepository<T>
}
IRepository<T> repo = new Repository<T>(entities);
repositories.Add(typeof(T), repo);
return repo;
}
// other methods
}
Die obige UOW ist ruhig verallgemeinert und es richtet sich an die Eltern immer Repository-Klasse. Ich habe eine andere Entität, zum Beispiel Student, die ein eigenes Repository hat, das die Repository-Klasse erweitert. Das studentenspezifische Repository hat eine Methode "GetStudentMarks()". Jetzt kann ich die allgemeine Unit Of Work-Klasse nicht verwenden, da sie immer auf das übergeordnete Repository verweist.
Wie implementiert man eine allgemeine Einheit der Arbeit, um solche Situationen zu behandeln? Danke im Voraus.
Das Problem ist, dass th Die Entwickler neigen dazu, Klassen nach ihrem Wunsch zu erstellen. Also wollte ich damit aufhören, daher brauchte ich eine generische UoW. –