Próbuję zdefiniować standardowy sposób grupowania według roku, miesiąca, dnia, godziny, itd ...Entity Framework. Grupa SQL Do grupy EF Do
Odczytując niektóre dokumenty SQL wydaje się najbardziej skuteczny sposób byłoby użyć:
GROUP BY dateadd(month, datediff(month, 0, CreatedDate), 0)
Uwaga "miesiąc", "rok", ...
potem próbował replikować to za pomocą:
.GroupBy(x => SqlFunctions.DateAdd("month", SqlFunctions.DateDiff("month", 0, x.Created), 0))
.GroupBy(x => EntityFunctions.AddMonths(EntityFunctions.DiffMonths(0, x.Created)))
Jednak oba wyrażenia nie udało się skompilować ...
I nie jestem pewien, czy to jest sposób, aby to zrobić?
Jak poprawnie replikować tę linię kodu SQL w EF?
Tak, mam to działa. Ale jeśli nie mylę się używając czegoś, co napisałem, ma lepszą wydajność, nie? Czytałem następujące: http://weblogs.sqlteam.com/jeffs/archive/2007/09/10/group-by-month-sql.aspx ... –
W ten sposób próbowałem znaleźć sposób, aby replikuj ten kod SQL za pomocą EntityFunctions ... I jednocześnie twórz standardowy sposób grupowania według lat, miesięcy, dni, godzin, ... Po prostu muszę zmienić AddYears na AddMonths, aby ... –
Nie ma żadnej korzyści z wydajności. Post, do którego połączyłeś, po prostu stwierdza, że ułatwia on pracę z Sql. Nie widzę tak dużej korzyści z tego w Entity Framework. .NET nie ma takich samych ograniczeń jak Sql. – cadrell0