Ich arbeite an einer neuen Webanwendung mit ASP.Net 5/EF7.Repository-Muster mit EF7
Ich denke auch über das Repository-Muster zusammen mit Entity Framework.
Ich bin auf der Suche nach einem Rat, um mit meiner generischen Repository-Klasse umzugehen. Da EF7 noch keine Find() - Methode hat, habe ich Schwierigkeiten, die Methode wie GetById (int id) in meiner generischen Repository-Klasse zu implementieren. Ich weiß, dass FirstOrDefault() stattdessen verwendet werden kann, aber ich habe keinen Zugriff auf die tatsächliche ID aus dem Modell.
Können Sie mir bitte helfen, eine Alternative zu finden?
Unten ist mein generische Repository-Klasse:
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class
{
protected readonly PersonDBContext _dbContext;
public Repository(PersonDBContext context)
{
_dbContext = context;
}
public IEnumerable<TEntity> GetAll()
{
return _dbContext.Set<TEntity>().ToList();
}
public TEntity Get(int? id)
{
return _dbContext.Set<TEntity>().FirstOrDefault();
}
public IEnumerable<TEntity> Find(Expression<Func<TEntity, bool>> predicate)
{
return _dbContext.Set<TEntity>().Where(predicate);
}
public void Add(TEntity entity)
{
_dbContext.Set<TEntity>().Add(entity);
}
public void Remove(TEntity entity)
{
_dbContext.Set<TEntity>().Remove(entity);
}
}
Dank Saeed
Gibt es eine gemeinsame Eigenschaft/Feld auf "TEntity", die referenziert werden kann. Kannst du zeigen, wie 'TEntity' aussieht? – Nkosi
TEntity wird später ein Modell sein, wenn ich es an die Repository-Klasse übergebe. Dies ist die generische Repository-Klasse. In diesem Fall wird die TEntity das Modell sein, das z.B. Person. – Xerxes1TheGreat