我一直在努力解决这个问题,所以我想我会在这里发帖。
如果我要在 Parent 对象和 Child 对象之间建立 1->Many 关系。然后将我的 Parent 对象从我的 Context 检索到一个 List 对象中。然后我遍历所述列表,在每个子记录上设置一个“虚拟”属性。“虚拟”属性是一个枚举,它定义了一个状态,即New、Unchanged、Invalid。它实现为实体实现的抽象类上的属性。
完成此操作后,我想计算所有状态为“新”的子对象的计数。
Parent.Sum(p => p.Child.Where(c => c.Status == New).Count())
第一个问题是,对于每个父记录,这将返回数据库一次并获取所有链接的子记录。
第二个问题是因为 Status 字段不是实际的数据库字段,所以值都是枚举默认值。
对此的任何帮助将不胜感激。
编辑:
所以首先,我不想要数据库中的 Status 列。如果我愿意,我可以轻松添加它,但它不是我想要坚持的东西。
这可能是我能给出的最好的完整代码示例。
List<Parent> parents = myDB.Parents.ToList();
foreach(Parent parent in parents)
{
foreach(Child child in parent.Child)
{
if (condition1)
{
child.Status == Statuses.Status1;
}
else if (condition2)
{
child.Status == Statuses.Status2;
}
else if (condition3)
{
child.Status == Statuses.Status3;
}
}
}
Console.WriteLine(Parent.Sum(p => p.Child.Where(c => c.Status == New).Count()))