Ich migrieren eine Website ASP.NET MVC zu ASP.NET MVC-Kern mit EF zu EF Core.EF Rückgabe null für einige, aber EF Core return 0
Ich mache eine Anfrage mit leeren Wert:
var q = bd.Prod
.Where(o => o.xxx == yyy)
.GroupBy(o => o.sss)
.Select(g => new
{
ccc = g.Key,
vvv = g.Sum(i => i.qqq),
bbb = g.Sum(i => i.fff),
nnn = g.Sum(i => i.ggg),
});
Wenn ich diesen Code mit EF return null ausgeführt werden, wenn alle Zellen der Summe sind leer. Aber EF Core gibt 0 zurück, wenn alle Zellen der Summe leer sind. Wie macht EF Core Null zurück?
sie Schuld :) https://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/2410716-result-of-sum -of-a-empty-set-sollte-0-eher – grek40
Derzeit kein Glück, weil EF Core 'GroupBy' im Speicher (sogenannte Client-Auswertung) verarbeitet, und dies ist bekannt Verhalten von LINQ To Objects' Sum' Implementierung . Warten Sie, bis EF Core v.2 das * eventuell * behoben hat. –
@ grek40 Fast: Es ist nicht die Summe einer leeren Menge hier, es ist die Summe von 'null's. Die 'Nullen' werden verworfen, und was bleibt, ist eine leere Menge, aber das ist nicht das einzig mögliche vernünftige Verhalten, wenn man mit 'Null' konfrontiert wird. – hvd