私は Entity Framework/Fluent API を使用していますが、それらは初めてです。私のシナリオでは、次の 3 つのクラスがあります。
public class Review
{
public int Id { get; private set; }
public float AverageRating { get; private set; } //Computed Field
public int TotalLikes { get; private set; } //Computed Field
public List<Rating> Ratings { get; private set;}
public List<Like> Likes { get; private set;}
}
public class Rating
{
public int CustomerId { get; private set; }
public int ReviewId { get; private set; }
public int Rating { get; set; }
}
public class Like
{
public int CustomerId { get; private set; }
public int ReviewId { get; private set; }
}
3 つのクラスすべてとそれらの関係に Fluent マッピングがあります。復習クラスには 2 つの計算フィールドがあります。子コレクション (Ratings と Likes) から計算フィールドを設定できます。その場合、Linq クエリに両方の子コレクションを含める必要がありますが、これはパフォーマンスを集中的に使用する操作であると考えています。または、DB で計算列を使用することもできます。しかし、データベース側に何かを入れるのは好きではありません。では、子コレクションをロードしたり、データベース ソリューションを使用したりせずに、計算フィールド (主に Count、Average などの集計操作) を設定する最良の方法は何でしょうか?