我正在关注this教程,以便了解更好的通用存储库。
GetById方法:
public async Task<TEntity> GetById(int id)
{
return await _dbContext.Set<TEntity>()
.AsNoTracking()
.FirstOrDefaultAsync(e => e.Id == id);
}
但我收到此错误:TEntity不包含id的定义。
这是我缺少的东西还是我做错了什么?
PS:我正在使用ASP.NET Core 2
答案 0 :(得分:2)
本教程对泛型参数
有类型约束public interface IGenericRepository<TEntity>
where TEntity : class, IEntity {
//...
}
这假定IEntity
具有Id
属性的接口,该属性未在文章中显示,但存在于文章中链接的源代码中。
public interface IEntity {
int Id { get; set; }
}
这意味着与通用存储库一起使用的所有实体都需要从该接口派生才能使其工作。