Ich habe eine Abfrage in C# und ich muss nach dieser Abfrage für c.Same_invoice gruppieren und den Spaltenpreis in der gruppierten Zeile summieren.Gruppieren nach und Summe In LINQ-Abfrage mit Join
Ich weiß, wie Gruppe und Summe zu tun, aber ich weiß nicht die Lösung für meinen Fall, mit einer Verknüpfung und eine große Menge an Daten.
Der eigentliche Code ist:
var query = from c in snd.external_invoices.OrderByDescending(x => x.date)
join o in snd.invoices on c.idexternal_invoices equals o.id_external_invoice
select new{
c.idexternal_invoices,
c.businessname,
o.number,
c.message,
c.price,
c.date,
c.iduser
};
Dank an alle
Joins sind ein sehr, sehr starken Geruch. Die Beziehung zwischen den Entitäten sollte in ihrer Zuordnung angegeben werden. Das ORM (z. B. EF) generiert bei Bedarf nur die richtigen Joins * und lädt nur die endgültigen Daten. In diesem Fall müssen Sie nicht einmal gruppieren, da Sie alle Stammobjekte zurückgeben. Eine einzelne 'c.Invoices.Sum (inv => inv.SomeField)' würde reichen –
Ich verstehe, was Sie sagen, aber ich arbeite für eine Beratung, wo der Kunde ein Projekt mit Entity Framework hat, aber beschlossen, nicht hinzuzufügen Zuordnungen zur Datenbank. Ich bin nicht berechtigt, die db oder das Mapping zu ändern. Ich kann nur mit dem arbeiten, was ich habe. Danke für Ihre Antwort –
Dann sagen Sie ihnen, sie müssen ihren Fehler beheben. In jedem Fall ist es unmöglich zu helfen, ohne zu wissen, was Sie gruppieren oder summieren möchten. Wie würden Sie dieselbe Aussage in SQL schreiben? Die LINQ-Anweisung wäre äquivalent. Und der Kunde hätte immer noch einen sehr hässlichen Bug –