Ich möchte Daten aus der Datenbank nach etwas sortiert, dass ich es wählen, als Beispiel, ich möchte alle Benutzer in der Website registriert bestellen von: Name, Name aufsteigend, registrieren Datum oder Anzahl der KommentareVerwenden von Ausdrucksbaum in LINQ zu Entity Framework Core
Ich möchte nicht, weil alle wählen Anweisung wiederholen nur Auftrag von Anweisung
, dass mein Code, aber es mit mir nicht:
Expression<Func<AppUser, Object>> OrderByExpression = null;
switch (userOrder)
{
case UserOrder.RegistDate:
OrderByExpression = a => a.RegistrationDate;
break;
case UserOrder.A_Z:
OrderByExpression = a => a.UserName;
break;
case UserOrder.Z_A:
OrderByExpression = a => a.UserName descending;
break;
case UserOrder.MostComment:
OrderByExpression = a => a.Comments.Count;
break;
}
Das Select-Anweisung lautet:
IEnumerable<AppUser> AllUsers =
(from a in context.Users
orderby OrderByExpression.Compile()(a)
select new AppUser
{
UserName = a.UserName,
Id = a.Id,
Email = a.Email,
EmailConfirmed = a.EmailConfirmed,
RegistrationDate = a.RegistrationDate
}).ToList();
Es funktioniert gut, aber das Problem, wenn ich nach Kommentar bestellen möchte s. Graf & Username absteigend, ist das Problem in (Count & absteigend)
Danke , aber ich muss nur var query = context.Users.AsQueryable() anstelle von var query = context.Users verwenden – mustafa
@mustafa Ich habe vergessen, dass 'AsQueryable' benötigt wurde (hängt von der EF-Version ab), behoben! –