У меня есть источник данных сущности (связанный с базой данных SQL Server 2012) на странице aspx .NET v4. Моя декларация DataSource выглядит следующим образом:Использование DISTINCT с EntityDataSource
<asp:EntityDataSource ID="BlahBlah" runat="server"
ConnectionString="name=BlahBlah"
DefaultContainerName="BlahBlah" EnableFlattening="False"
EntitySetName="vw_shop_ProductListWithIndivCats"
Where="it.Display =true" OrderBy="it.[DisplayPriority]"
Select="DISTINCT it.[ProductID], it.[Name], it.[Short_rubric], it.[Price], it.[Available], it.[Display], it.[ProductDetailLayoutID], it.[DisplayPriority] " >
Значение WHERE
изменяется в коде, когда пользователь взаимодействует с сайтом. Предприятие имеет больше столбцов, чем в SELECT
заявления
данные отображаются в GridView и что работает просто отлично, кроме DISTINCT
ключевого слова не соблюдаются, то есть повторяющиеся строки из таблиц показываются в GridView.
Любые предложения?
Дополнительная информация о проблеме. Столбцы в сущности (которая является видом) vw_shop_ProductListWithIndivCats
являются:
ProductID
Name
Short_rubric
Rubric
Price
Postage
Image_small
Image_Large
ImageType
Available
Display
ProductDetailLayoutID
DisplayPriority
CategoryID
Category
Большинство полей являются производными образуют таблицу продуктов. В представлении многие из многих присоединяются к таблице Categories
с двумя последними полями, опосредованными через обычную таблицу ссылок.
В пользовательском интерфейсе пользователь может выделять продукты по категориям, а продукты могут иметь несколько категорий, например n категорий, инструкция selct (без отдельной) создает строки x, которые, поскольку в представлении содержатся только поля из таблицы продуктов, содержат n повторяющихся строк. Я ожидал, что DISTINCT или GROUP BY дедуплируют строки, но это не так. Я согласился, что у меня есть столбцы, которые, как мне кажется, у меня есть, временно помещая список voiew, который отображает каждый столбец
'GROUP BY' только удаляет все дубликаты, если вы включите все столбцы. Можно ли включить столбцы категорий в предложения select и group by? –
Нет, поскольку строки не будут одинаковыми. – Martin