0
エンティティフレームワークを使用している警察に関する統計情報を提供する関数をプログラムに実装する必要があります。画像はデータベースの構造を示しています。また、7つのマージするテーブルとカウントがありますC#エンティティフレームワークLINQ - レポートの作成
Users.Where(w => w.Region == 1321)
.Select(s => s.Id)
.Join(Added, x => x, y => y.UserId, (x, y) => new
{
UserId = x,
PersonId = y.PersonId,
Date = y.AddDate
})
.GroupJoin(Status, x => x.PersonId, y => y.PersonId, (x, y) => new
{
PersonPreviouslyConvicted = y.PersonPreviouslyConvicted,
PersonBum = y.PersonBum,
PersonJobless = y.Jobless,
}).Join(Photos...).Join(More tables...)
を私の問題は、私は適切に複数の参加を整理することができないということです人数、個数、総数。すべてのテーブルで、外部キーはPersonIdです。 ReportContainer型のオブジェクトのリストをラップする必要があるすべての結果。
public class ReportContainer
{
public string Name { get; set; } // City or District name
public int? SevenDays { get; set; } // Count of the 7 days by column Added.AddDate
public int? ThirtyDays { get; set; } // Count of the 30 days by column Added.AddDate
public int? Bum { get; set; } //Count Bum
public int? Photography { get; set; } //Count Photos
public int? PreviouslyConvicted { get; set; } //Count PreviouslyConvicted
public int? Jobless { get; set; } //Count Jobless
}
私が考え、次のようにReportContainerこれにSQLクエリを使用することをお勧めします。データが大きくなると効率的になります。 また、ef用に最適化するために単一のクエリを中断することもできます。ベンチマークと最適化が最良の方法です2 – Eldho