0
Ich bin stecken diese SQL in Lambda Umschreiben:Umschreiben dieses SQL in Lambda - mit Zähl- und Gruppe von
SELECT TOP 1000 COUNT(LoginDateTime)
,[LoginDateTime]
,[Culture]
FROM [LearningApp].[dbo].[UserActivities]
group by LoginDateTime, Culture
Ergebnis:
+-----+---------------------------+----------+
| | LoginDateTime | Culture |
+-----+---------------------------+----------+
| 1 | 2016-07-14 12:21:23.307 | de |
| 4 | 2016-07-13 12:21:23.307 | en |
| 2 | 2016-07-14 12:21:23.307 | en |
+-----+---------------------------+----------+
Und mein Code:
public List<UserActivityResponseContract> GetUserActivity()
{
var userActivityResponseContracts = new List<UserActivityResponseContract>();
var userActivitiesList = _baseCommands.GetAll<UserActivity>()
.Select(x => new
{
x.LoginDateTime,
x.Culture
})
.GroupBy(x => new { x.LoginDateTime, x.Culture});
foreach (var userActivity in userActivitiesList)
{
userActivityResponseContracts.Add(new UserActivityResponseContract
{
ActivityDate = userActivity.Key.LoginDateTime.ToShortDateString(),
NumberOfTimesLoggedIn = userActivity.Count(),
Culture = userActivity.Key.Culture
});
}
return userActivityResponseContracts;
}
Es scheint nicht sehr schwierig, aber ich bin ein bisschen fest.
Ist das SQL wirklich, was Sie wollen? Es sieht so aus, als ob Sie nach Zeitstempeln bis auf die Millisekunde gruppieren und ActivityDate dann nur auf den Datumsteil setzen. – Sconibulus
@Sconibulus Ich interessiere mich nur für den Tag Teil des Datums, weil es eine Abfrage ist, wo ich Aktivität am Tag sehen möchte. –
In diesem Fall möchten Sie wahrscheinlich das Datum und nicht den Zeitstempel auswählen und gruppieren. Beispiel: SELECT CAST (LoginDateTime AS DATE) – Sconibulus