【发布时间】:2017-06-14 10:53:09
【问题描述】:
我正在使用实体框架在 VB.NET 和 ASP.NET 中编写一个发票系统来存储我的对象。我想总结任何特定月份的所有可计费行项目,并将它们整理成发票。下面的 SQL 查询完成了这个,但是我不能让它在实体框架代码优先:
SQL 查询:
SELECT DISTINCT
[database].[dbo].[WorkOrderDetails].PriceCodeID,
[database].[dbo].[WorkOrderDetails].[Description],
SUM([database].[dbo].[WorkOrderDetails].[Quantity]) AS [Quantity],
SUM([Subtotal]) AS Subtotal,
SUM([Total]) AS Total
FROM
[database].[dbo].[WorkOrderDetails]
INNER JOIN
[database].[dbo].[WorkOrders] ON [database].[dbo].[WorkOrderDetails].[WorkOrderID] = [database].[dbo].[WorkOrders].[WorkOrderID]
WHERE
[ClientID] = 182
AND [WorkOrders].[Date] >= '10/1/2016'
AND [WorkOrders].[Date] < '10/31/2016'
GROUP BY
[PriceCodeID], [Description]
此查询的输出类似于以下内容:
PriceCodeID | Description | Quantity | Subtotal | Total
------------+-------------+----------+----------+--------
26 BOX REFILE 19 47.50 47.50
28 BOX RETRIEVAL 15 37.50 37.50
98 Del/Pu Out 376 545.20 545.20
95 Shredding 16893 760.19 760.19
我的对象是:
WorkOrder:WorkOrderID、Date、ClientID (外键)、列表(WorkOrderDetail)WorkOrderDetail: WorkOrderDetailID、PriceCodeID (外键)、描述、单价、数量、小计、税金、总计、WorkOrderID (外键)PriceCode: PriceCodeID, ShortCode, Description, UnitPrice, Tax
我正在尝试使用下面的语句,但我不确定如何使用GroupBy 语句。
newInvoice.Details = _db.WorkOrderDetails
.Include("WorkOrder")
.Where(Function(wod) wod.WorkOrder.Date >= newInvoice.StartDate And
wod.WorkOrder.Date < newInvoice.EndDate And
wod.WorkOrder.ClientID = newInvoice.ClientID)
.GroupBy(...)
.ToList()
【问题讨论】:
标签: c# asp.net vb.net entity-framework linq