Ich schreibe ein Fakturierungssystem in VB.NET und ASP.NET mit Entity Framework, um meine Objekte zu speichern. Ich möchte alle abrechenbaren Werbebuchungen für einen bestimmten Monat zusammenfassen und in einer Rechnung zusammenfassen. Die folgende SQL-Abfrage erreicht dies, aber ich kann es nicht in Entity Framework erhalten funktionierenden Code-first:Ausführen einer GROUP BY-Abfrage in Entity Framework von einer SQL GROUP BY-Anweisung
SQL-Abfrage:
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]
Die Ausgabe dieser Abfrage ist ähnlich der folgenden:
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
Meine Objekte sind:
WorkOrder
: WorkOrderID, Dat e, clientId (Fremdschlüssel), List (vonWorkOrderDetail
)WorkOrderDetail
: WorkOrderDetailID, PriceCodeID (Fremdschlüssel), Beschreibung, Einzelpreis, Menge, Teilsumme, Steuer, Total, WorkOrderID (Fremdschlüssel)PriceCode
: PriceCodeID, Shortcode, Beschreibung, Einzelpreis, Steuer
ich versuche th zu verwenden Die Aussage unten, aber ich bin mir nicht sicher, wie man die GroupBy
Aussage verwendet.
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()