var query = TableNoTracking;
query = query
.Include(r => r.UserRoles).ThenInclude(o => o.Role)
.Include(c => c.Photos.Where(x => x.IsMain))
.Include(w => w.Wallets);
my sort part is like below and I want handle sorting dynamically
if (!string.IsNullOrWhiteSpace(filterUser.SortBy))
{
switch (filterUser.Reverse)
{
//reverse
case true:
switch (filterUser.SortBy)
{
case UserNavigationPropsForSort.InventorySum:
query = query.OrderByDescending(x => x.Wallets.Select(y => y.Inventory).Sum());
break;
case UserNavigationPropsForSort.InterMoneySum:
query = query.OrderByDescending(x => x.Wallets.Select(y => y.InterMoney).Sum());
break;
case UserNavigationPropsForSort.ExitMoneySum:
query = query.OrderByDescending(x => x.Wallets.Select(y => y.ExitMoney).Sum());
break;
case UserNavigationPropsForSort.OnExitMoneySum:
query = query.OrderByDescending(x => x.Wallets.Select(y => y.OnExitMoney).Sum());
break;
}
break;
case false:
switch (filterUser.SortBy)
{
case UserNavigationPropsForSort.InventorySum:
query = query.OrderBy(x => x.Wallets.Select(y => y.Inventory).Sum());
break;
case UserNavigationPropsForSort.InterMoneySum:
query = query.OrderBy(x => x.Wallets.Select(y => y.InterMoney).Sum());
break;
case UserNavigationPropsForSort.ExitMoneySum:
query = query.OrderBy(x => x.Wallets.Select(y => y.ExitMoney).Sum());
break;
case UserNavigationPropsForSort.OnExitMoneySum:
query = query.OrderBy(x => x.Wallets.Select(y => y.OnExitMoney).Sum());
break;
}
break;
}
}
I include several entities, now I want to order this query dynamically based on included properties, for example inventory in wallet. i tried dynamic linq library but it dont work for this situation;
How can I do this?