私のEFモデルでは:
私はこの見方をします:
次のLINQクエリを使用して(あなたの助けを借りて):
var query = ctx.data.ToList().OrderBy(d => d.Time).
GroupBy(d => d.Members.StepId).
SelectMany(g => g.Select((d, place) => new { Time = d.Time, Members = d.Members, PlaceInStep = place + 1 })).
GroupBy(d => d.Members.TeamId).
Select(g => new
{
TeamId = g.Key,
Name = g.Select(d => d.Members.Teams.TeamName).First(),
Members = g.Select(d => new {Time = d.Time, PlaceInStep = d.PlaceInStep, MemberName = d.Members.MemberName}),
TotalTime = g.Aggregate(new TimeSpan(), (sum, nextData) => sum.Add(nextData.Time))
});
しかし、私には2つの問題があります。
1.同じステップの2人のメンバー(たとえば、35歳より前)がミリ秒まで同じ時間を持っている場合、それらは同じ場所にある必要があります
2.結果のMembersサブコレクションで、StepIdでメンバーを配置し、StepNameを表示します。
このクエリを変更するにはどうすればよいですか?ありがとう。
編集1:
私はこれをいくつか取りたい: