我正在尝试使用lambda来选择表B中(数量*值)的总和,其中表A中的列IsChecked为真。
表A
A_ID(Int)主键
IsChecked(布尔)
表B
B_ID(Int)
A_ID(Int)表A的Foregin KEY
数量(Int)
价值(国际)
我毫无价值的尝试(对不起,我不知道):
_context.TableA.Where(i => i.IsChecked == True).Include(i => i.TableB).Sum(i => i.Price * i.Quantity))
这是sql查询:
SELECT SUM(Value * QUANTITY) FROM TableB JOIN TableA ON TableA.A_ID = TableB.A_ID WHERE TableA.IsChecked = 'true'
答案 0 :(得分:1)
由于您的导航属性从Table B
返回Table A
,因此您可以从Table B
开始,如下所示:
_context.TableB
.Include(i => i.TableA)
.Where(w => w.TableA.IsChecked)
.Sum(s => s.Price * s.Quantity)
请注意,上述内容不会检查A_ID
中的Table B
是否为空。