Повторитель ASP, показывающий некоторые повторяющиеся возвраты

#c# #asp.net #linq

#c# #asp.net #linq

Вопрос:

Я запускаю простой запрос и привязываю его к повторителю, однако НЕКОТОРЫЕ данные поступают дважды, данные не дублируются в БД. Это происходит, когда я выбираю и беру. Я скорректировал свой код так, как это сделал MSDN, но, может быть, я что-то пропустил?

Код:

 var query = (from q in data.Events
                         join x in data.Types on q.id equals x.id
                         where q.change != "UNCHANGED" amp;amp; q.indicator.Contains("UP")
                         select new
                         {
                             q.id,
                             q.price,
                             q.date,
                             q.indicator,
                             x.information

                         }).ToList().OrderByDescending(q => q.price).Take(10);
            rptEvents.DataSource = query;
            rptEvents.DataBind();
 

Комментарии:

1. Если вы запустите SQL-запрос, который генерируется в базе данных, вы получите повторяющиеся строки?

2. @John Там нет дубликатов. Из моих 10, 3 являются дубликатами при использовании LINQ. 3-я, 5-я и 8-я позиции, похоже, дублируются независимо от того, как я выбираю данные, поэтому, если данные отличаются, это все равно вызывает проблему.

3. Разве это не должно быть .OrderByDescending(q => q.price).Take(10).ToList() ? Ваш запрос загружает все в память, затем выполняется OrderBy().Take() и привязывается к IEnumerable.

4. JOIN to data.Types приводит к дублированию. Это очевидно.