ich einige Implementierungen des Repository-Muster gesehen haben, sehr einfach und intuitiv, verknüpft Form andere Antworten hier in StackoverflowRepository Pattern und Unit-Tests aus dem Gedächtnis
http://www.codeproject.com/Tips/309753/Repository-Pattern-with-Entity-Framework-4-1-and-C http://www.remondo.net/repository-pattern-example-csharp/
public interface IRepository<T>
{
void Insert(T entity);
void Delete(T entity);
IQueryable<T> SearchFor(Expression<Func<T, bool>> predicate);
IQueryable<T> GetAll();
T GetById(int id);
}
public class Repository<T> : IRepository<T> where T : class, IEntity
{
protected Table<T> DataTable;
public Repository(DataContext dataContext)
{
DataTable = dataContext.GetTable<T>();
}
...
Wie kann ich funktioniert es aus dem Speicher, wenn Unit-Tests durchgeführt werden? Gibt es eine Möglichkeit, eine DataContext- oder Linq-Tabelle aus einem beliebigen Speicher zu erstellen? Meine Idee war, eine Sammlung (Liste, Wörterbuch ...) zu erstellen und sie beim Komponententest auszugeben.
Danke!
EDIT: Was ich so etwas wie dieses brauchen:
- Ich habe eine Klasse Buch
- ich eine Klassenbibliothek
Im
Library
Konstruktor initialisieren ich das Repository:var bookRepository = new Repository<Book>(dataContext)
Und die
Library
Methoden verwenden das Repository, wie diesepublic Book GetByID(int bookID) { return bookRepository.GetByID(bookID) }
Beim Testen habe ich einen Speicherkontext zur Verfügung stellen möchten. Während der Produktion werde ich einen echten Datenbankkontext bereitstellen.
ich einige Beispiel-Code nach Ihrer Anfrage hinzugefügt . –