Как получить максимальные, минимальные, средние значения всех столбцов - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь получить максимальные, минимальные и средние значения с помощью

context.SystemUser
     .Include(x => x.Stores)
          .ThenInclude(a => a.StoreStockDetail)
      .Where(b => b.UserName == userName)
      .Select(c => new
       {
        /*max, min, mean values of columns of StoreStockDetail*/
       });


    public class SystemUser
        {
            public int Id { get; set; }
            public virtual List<Store> Stores { get; set; }

            public SystemUser()
            {
                this.Stores = new List<Store>();
            }

        }

    public class Store
        {
            public int Id { get; set; }
            public virtual StoreStockDetail StoreStockDetail { get; set; }

        }

     public class StoreStockDetail
        {
            public int Id { get; set; }
            public int BackStore { get; set; }
            public int FrontStore { get; set; }
            public int ShoppingWindow { get; set; }}

            public int StoreId { get; set; }
            public virtual Store Store { get; set; }
        }

Мне нужно иметь максимальный, минимальный и средний отчет по столбцам BackStore, FrontStore и ShoppingWindow.

Спасибо

1 Ответ

0 голосов
/ 16 апреля 2019

Вместо использования последовательности выражений LINQ, вы могли бы сначала сгладить список хранилищ в SystemUser, а затем использовать результат, чтобы найти максимальное, минимальное и среднее значения.Попробуйте это:

        var stores = context.SystemUser
                         .Include(x => x.Stores)
                         .ThenInclude(a => a.StoreStockDetail)
                         .Where(b => b.UserName == userName).SelectMany(user => user.Stores);
        var report = new
        {
            FrontStoreMin = stores.Min(store => store.StoreStockDetail.FrontStore),
            FrontStoreMax = stores.Max(store => store.StoreStockDetail.FrontStore),
            FrontStoreMean = stores.Average(store => store.StoreStockDetail.FrontStore),
            // do the same for BackStore and ShoppingWindow
        };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...