我正在使用ASP.Net 5/EF7開發新的Web應用程序。使用EF7的存儲庫模式
我也在考慮知識庫模式以及實體框架。
我正在尋找一些建議來處理我的通用存儲庫類。由於EF7目前還沒有Find()方法,所以在通用資源庫類中實現GetById(int id)方法時遇到了一些困難。我知道可以使用FirstOrDefault(),但我無法訪問模型中的實際「Id」。
你能幫我找一個替代品嗎?
下面是我的通用倉庫等級:
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);
}
}
感謝 賽義德
「TEntity」上是否存在可引用的一些常見屬性/字段?你能說出'TEntity'的樣子嗎? – Nkosi
當我將它傳遞給存儲庫類時,TEntity將成爲模型。這是通用的存儲庫類。在這種情況下,TEntity將被稱爲例如人。 – Xerxes1TheGreat