Не работает запрос на сумму LINQ

223
27 апреля 2017, 12:49

Есть запрос на подсчет суммы колонки в таблице,которая отображена на win forms и связана с базой данных. Пытаюсь просуммировать значения колонки quantity .Вот код

 var sumEl = (from s in db.GetTable<Registr>() select s.quantity);
            int sum = 0;
            foreach (var item in sumEl) { sum = Convert.ToInt32(sum + item); }
            var v = (from r in db.GetTable<Registr>() select new { r.date, sum, r.amount }).Distinct();
            dataGridView1.DataSource = v;

Что здесь не так? Помогите пожалуйста,уже все обыскала.

Answer 1

Да вроде всё так. Должно работать.

Однако, хочу дать несколько советов.

Сумму можно получить прямо из БД:

var sum = (from s in db.GetTable<Registr>() select s.quantity).Sum();

Запросы к БД - медленные операции. В приведённом коде выполняются два запроса. Я бы убрал первый запрос и переписал одним запросом как-то так:

var registr = db.GetTable<Registr>();
var v = (from r in registr
         select new
         {
             r.date,
             sum = (from s in registr select s.quantity).Sum(),
             r.amount
         })
         .Distinct();

Это должно быть эффективней.

Ещё я бы переименовал свойства с большой буквы: Date, Quantity, Amount в соответствии с гайдлайнами.

Кроме того, linq2sql, по идее, должен был сгенерировать в контексте свойство Registrs для доступа к таблице. Его можно (нужно) использовать вместо GetTable<Registr>().

READ ALSO
Как передать данные с сервера клиенту по UDP?

Как передать данные с сервера клиенту по UDP?

Конкретно непонятно как заставить клиента слушатьЕсть метод Bind, который связывает сокет с хостом

270
Увеличение обьекта ui по нажатию кнопки Unity [требует правки]

Увеличение обьекта ui по нажатию кнопки Unity [требует правки]

Есть изображение (на UI)На нем кнопка

265
Когда следует использовать ValueTask&lt;T&gt;?

Когда следует использовать ValueTask<T>?

В новой редакции языка появилось новшество ValueTask<T>

231
загрузка структуры дерева TreeView из XML

загрузка структуры дерева TreeView из XML

Я пытаюсь отобразить элементы из XML в TreeView используя wpf MVVM

305