2011-02-08 5 views
1

Используя объект SqlQuery SubSonic (2.2), я запрашиваю представление, которое содержит различные строки из другой таблицы. Однако результаты запроса содержат несколько строк для определенных строк в представлении. Похоже, что это связано с объединением временной таблицы в запросе, созданном для достижения пейджинга. Как я могу избежать дублирования строк?Запрос SubSonic .Paged() возвращает повторяющиеся записи

Бонусные баллы: Мне нужно использовать представление, потому что SubSonic не может делать .Paged() и .Distinct() одновременно. Почему нет?

ответ

0

Если я правильно помню, вам нужно использовать разные позиции в правильном положении.

var query = DB.Select().From<Products>() 
       .Where(Products.CategoryColumn).IsEqualTo(5).Distinct(); 

var query = DB.Select().Distinct().From<Products>() 
       .Where(Products.CategoryColumn).IsEqualTo(5); 

Оба утверждения компилируются, но первый генерирует неверный код sql. Хорошая отправная точка для отладки дозвуковых SqlQueries является создание вывод:

var sql = query.BuildSqlStatement(); 

Другим решением может быть использование группы, а не отличается, так что вы можете избежать зрения в первую очередь.

 Смежные вопросы

  • Нет связанных вопросов^_^