【发布时间】:2018-07-02 10:17:55
【问题描述】:
所以我有如下数据(注意这些表是简化的):
Header:
Id
1
2
3
Child:
Id HeaderId Code Round
1 1 A 1
2 1 A 2
3 1 B 1
4 2 A 1
5 2 B 1
6 2 C 1
7 3 A 2
8 3 B 1
9 3 A 1
我想从结果上方的数据表中计算他们的孩子在最大回合中没有 B 的头数应该是 2,因为:
标题1在第2轮中没有B(标题1最大轮数为2)
标题 2 在第 1 轮中有 B
标题 3 在第 2 轮中没有 B(标题 3 最大轮数为 2)
这是我尝试过的 linq
var result = data.Where(e =>
!e.Child.Any(a =>
a.Code == "B" &&
a.Round == e.Child.Max(c => c.Round))).Count();
但不起作用,我得到了这个
ORA-00904:“Extent1”。“EXPENSE_ID”:无效标识符
"Extent1"."ID" 是 Header 表上的 Id 列
在这种情况下如何获得最大回合?
-----已解决,谢谢-----
【问题讨论】:
-
不清楚你在问什么,有什么异常?
-
所以你想要在最大回合中没有 B 的 Header Id?
-
@TheGeneral 我需要知道有多少 Header 在他们的孩子中没有 B,但是上面的条件仅适用于 header 的孩子的最高一轮。所以如果孩子的标题有B但不是最高轮,它仍然算
-
@SelvaTS 是的,你是对的
-
“但由于 ID 无效(标头表上的 ID)不起作用” - 请澄清这一点。
标签: c# entity-framework linq lambda