我有2个实体,每个实体都由EF Code First管理,每个实体都乐于坐在自己的桌子上。 Entity_A有一个名为“SumTotal”的属性,它应该是Entity_B中与特定条件匹配的特定列的总和。
SumTotal不应该保留在数据库中,而是每次检索到Entity_A的实例时计算。
我查看了ComputedColumns,但似乎只能相对于同一个表中的列定义computedcolumn。
我还有一种感觉,我需要将SumTotal设置为NotMapped(或类似于AutoGenerated的东西),但不知道如何将实际值设置为SumTotal。
希望这个问题有道理,先谢谢
答案 0 :(得分:0)
您可以将结果投影到匿名对象并将其转换为您的实体
var projection = db.EntityAs.Where(/* */)
.Select(a => new {A = a, Sum = a.Bs.Sum(b => b.Total)})
foreach(p in projection)
{
p.A.SumTotal = p.Sum;
}
var As = projection.Select(p => p.A);