プロジェクト内に汎用リポジトリを実装 (または Web から「借用」) しましたが、現在、このリポジトリを介して特定のレコードにアクセスする方法に行き詰まっています。
サンプルデータ:
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();
前もって感謝します!