Golden Basim Ответов: 1

Как получить сумму столбца в SELECT query с помощью entity framework ?


Привет, я хочу получить сумму акций в Select Query.

я создал этот класс :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MrSales.MrSModels.dataObjects
{
    class CLSExpiredStocks
    {           
							
        private int _stitems_ID;
        private int _stitems_Status;
        private string _stitems_Name;
        private int _stitems_Type;
        private string _stitems_Type_name;
        private string _stitems_Code;
        private string _stitems_NationalCode;
        private int _DetunitID;
        private string _UnitName;
        private int _StoreID;
        private string _store_Name;
        private DateTime _ExpireDate;
        private int _Stock;
        private double _Remain;

        public int stitems_ID
        {
            get { return this._stitems_ID; }
            set { this._stitems_ID = value; }
        }
        public int stitems_Status
        {
            get { return this._stitems_Status; }
            set { this._stitems_Status = value; }
        }
        public string stitems_Name
        {
            get { return this._stitems_Name; }
            set { this._stitems_Name = value; }
        }
        public int stitems_Type
        {
            get { return this._stitems_Type; }
            set { this._stitems_Type = value; }
        }
        public string stitems_Type_name
        {
            get { return this._stitems_Type_name; }
            set { this._stitems_Type_name = value; }
        }
        public string stitems_Code
        {
            get { return this._stitems_Code; }
            set { this._stitems_Code = value; }
        }
        public string stitems_NationalCode
        {
            get { return this._stitems_NationalCode; }
            set { this._stitems_NationalCode = value; }
        }
        public int DetunitID
        {
            get { return this._DetunitID; }
            set { this._DetunitID = value; }
        }
        public string UnitName
        {
            get { return this._UnitName; }
            set { this._UnitName = value; }
        }
        public int StoreID
        {
            get { return this._StoreID; }
            set { this._StoreID = value; }
        }
        public string store_Name
        {
            get { return this._store_Name; }
            set { this._store_Name = value; }
        }
        public DateTime ExpireDate
        {
            get { return this._ExpireDate; }
            set { this._ExpireDate = value; }
        }
        public int Stock
        {
            get { return this._Stock; }
            set { this._Stock = value; }
        }
        public double Remain
        {
            get { return this._Remain; }
            set { this._Remain = value; }
        }
    }
}


Что я уже пробовал:

DateTime date = FromInput.DateTime;
           mrsalesdbEntities DB1 = ConnectionTools.OpenConn();
           var Query = DB1.view_expireditems_noserials.Where(u => u.ExpireDate <= date).Select(x => new CLSExpiredStocks
           {
               stitems_ID = x.stitems_ID,
               stitems_Status = x.stitems_Status.Value,
               stitems_Name = x.stitems_Name,
               stitems_Type = x.stitems_Type.Value,
               stitems_Type_name = strings.STOCKS,
               stitems_Code = x.stitems_Code,
               stitems_NationalCode = x.stitems_NationalCode,
               DetunitID = x.DetunitID.Value,
               UnitName = x.UnitName,
               StoreID = x.StoreID.Value,
               store_Name = x.store_Name,
               ExpireDate = x.ExpireDate.Value,
               Stock = x.Sum(i => i.Stock),
               Remain = date.Subtract(x.ExpireDate.Value).TotalDays,

           });



но эта ошибка появляется :

'view_expireditems_noserials' не содержит определения для 'Sum', и никакой доступный метод расширения 'Sum', принимающий первый аргумент типа 'view_expireditems_noserials', не может быть найден (вы пропускаете директиву using или ссылку на сборку?)

1 Ответов

Рейтинг:
0

Gerry Schmitz

Вы "расширили" x с помощью Sum(); x - это не "коллекция".

Применяется функция sum() в коллекцию.

В вашем случае он был бы на том же уровне, что и ваш ".Где" ... он не вычисляется на "уровне детализации".


Golden Basim

как это сделать и показать сумму() внутри столбцов ? пожалуйста, не могли бы вы привести мне пример

Gerry Schmitz

"показывать ... внутри колонн". Я понятия не имею, что это может значить.

Потратьте некоторое время, чтобы сформулировать правильный вопрос.

Если вы не можете сделать что-то за один шаг, сделайте два или три.