私は現在、このデータのサンプルテーブルを持っています:
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 (MAX) でグループ化したいので、保持したいレコードは ID の 2 と 4 です。
ID | Policy ID | History ID | Policy name
2 | 1 | 1 | Test
4 | 2 | 1 | Test1
私はLINQでこれをやろうとしましたが、毎回同じ問題に遭遇しました。エンティティをグループ化できますが、ポリシー オブジェクトからプロパティを保持するのではなく、常にプロパティを再定義する必要があるグループになります。そのような:
var policies = _context.Policies.GroupBy(a => a.intPolicyId)
.Select(group => new {
PolicyID = group.Key,
HistoryID = group.Max(a => a.intHistoryID)
});
これは単に「ポリシー ID」と「履歴 ID」を持つオブジェクトのリストを表示するだけです。このオブジェクトには約 50 以上のプロパティがあるため、すべてのプロパティを再定義することなく、Policies オブジェクトから返されるすべてのプロパティが必要です。
私は試した:
var policies = _context.Policies.GroupBy(a => a.intPolicyId)
.Select(group => new {
PolicyID = group.Key,
HistoryID = group.Max(a => a.intHistoryID)
PolicyObject = group;
});
しかし、これはエラーになります。
何か案は?