我已经在我的项目中实现(或“借用”了网络!)一个通用存储库,现在我坚持如何通过这个存储库访问某些记录。
样本数据:
ID | Policy ID | History ID | Policy name
1 | 1 | 0 | Test
2 | 1 | 1 | Test
3 | 2 | 0 | Test1
4 | 2 | 1 | Test1
我需要的是具有最大历史 ID 的记录,因此策略 ID 1 和 2 将出现历史 ID 2(ID 的 2 和 4)。
我的通用存储库代码如下:
public virtual IEnumerable<TEntity> Get(
Expression<Func<TEntity, bool>> filter = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
params Expression<Func<TEntity, object>>[] includeProperties)
{
IQueryable<TEntity> query = dbSet;
if (filter != null)
{
query = query.Where(filter);
}
foreach (var includeProperty in includeProperties)
{
query = query.Include(includeProperty);
}
if (orderBy != null)
{
return orderBy(query).ToList();
}
else
{
return query.ToList();
}
}
现在,我知道我应该在这个函数上使用 filter 参数,但是在我的场景中,它甚至可能吗?我想我必须使用分组方法。
我的调用代码是(如果有帮助的话):
var policies = _policy.Get();
提前致谢!