LinqDataSource.GroupBy Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает значение, определяющее свойства, используемые для группировки и получения данных.
public:
property System::String ^ GroupBy { System::String ^ get(); void set(System::String ^ value); };
public string GroupBy { get; set; }
member this.GroupBy : string with get, set
Public Property GroupBy As String
Значение свойства
Строка, используемая для создания предложения Group By.
Примеры
В следующем примере показан LinqDataSource элемент управления, который группируют возвращаемые данные по свойству с именем Category
. Он возвращает общие значения и вычисляет среднюю цену для сгруппированных записей.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="Category"
Select="new(Key as ProductCategory,
Average(Price) as AvePrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:GridView
AllowPaging="true"
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="Category"
Select="new(Key as ProductCategory,
Average(Price) as AvePrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:GridView
AllowPaging="true"
DataSourceID="LinqDataSource1"
ID="GridView1"
runat="server">
</asp:GridView>
В следующем примере показан элемент управления, настроенный LinqDataSource для группировки по двум столбцам. Свойство Key
ссылается на объект с двумя свойствами: ProductCategory
и Color
. Объект, представленный , It
переименован в Products
. Переименованный Products
объект содержит коллекцию отдельных записей в группировке, а каждый экземпляр содержит все столбцы из таблицы Products.
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="new(ProductCategory, Color)"
Select="new(Key,
It As Products,
Max(ListPrice) As MaxListPrice,
Min(ListPrice) As MinListPrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
<asp:LinqDataSource
ContextTypeName="ExampleDataContext"
TableName="Products"
GroupBy="new(ProductCategory, Color)"
Select="new(Key,
It As Products,
Max(ListPrice) As MaxListPrice,
Min(ListPrice) As MinListPrice)"
ID="LinqDataSource1"
runat="server">
</asp:LinqDataSource>
В следующем примере показаны два ListView элемента управления для отображения данных из LinqDataSource элемента управления в предыдущем примере. В одном элементе ListView управления отображаются сгруппированные данные, а в другом ListView — отдельные имена продуктов, входящих в группу. Свойство вложенного элемента управления DataSource с привязкой к Products
данным имеет значение , которое является псевдонимом It
для объекта .
<asp:ListView
DataSourceID="LinqDataSource1"
ID="ListView1" runat="server">
<LayoutTemplate>
<table id="Table1"
style="background-color:Teal;color:White"
runat="server"
class="Layout">
<thead>
<tr>
<th><b>Product Category</b></th>
<th><b>Color</b></th>
<th><b>Highest Price</b></th>
<th><b>Lowest Price</b></th>
</tr>
</thead>
<tr runat="server" id="itemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("key.ProductCategory") %></td>
<td><%# Eval("key.Color") %></td>
<td><%# Eval("MaxListPrice") %></td>
<td><%# Eval("MinListPrice") %></td>
</tr>
<tr>
<td colspan="4" style="width:100%;background-color:White;color:Black">
<asp:ListView
DataSource='<%# Eval("Products") %>'
runat="server"
ID="ListView2">
<LayoutTemplate>
<div runat="server" id="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<%# Eval("ProductName") %><br />
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<asp:ListView
DataSourceID="LinqDataSource1"
ID="ListView1" runat="server">
<LayoutTemplate>
<table id="Table1"
style="background-color:Teal;color:White"
runat="server"
class="Layout">
<thead>
<tr>
<th><b>Product Category</b></th>
<th><b>Color</b></th>
<th><b>Highest Price</b></th>
<th><b>Lowest Price</b></th>
</tr>
</thead>
<tr runat="server" id="itemPlaceholder">
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("key.ProductCategory") %></td>
<td><%# Eval("key.Color") %></td>
<td><%# Eval("MaxListPrice") %></td>
<td><%# Eval("MinListPrice") %></td>
</tr>
<tr>
<td colspan="4" style="width:100%;background-color:White;color:Black">
<asp:ListView
DataSource='<%# Eval("Products") %>'
runat="server"
ID="ListView2">
<LayoutTemplate>
<div runat="server" id="itemPlaceholder" />
</LayoutTemplate>
<ItemTemplate>
<%# Eval("ProductName") %><br />
</ItemTemplate>
</asp:ListView>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
Комментарии
Свойство используется GroupBy для указания свойств, используемых для консолидации записей данных с одинаковыми значениями. Например, если для свойства задано значение GroupByName
, все записи в запросе с одинаковым Name
значением свойства возвращаются в виде одной консолидированной записи.
Свойству GroupBy можно назначить несколько свойств, заключив все свойства в функцию new
и разделив каждое свойство с помощью запятой. Например, чтобы сгруппировать по свойствам Name
, а затем Category
, присвойте свойству GroupBy значение new(Name, Category)
.
Значения в свойстве , используемом для группирования, возвращаются через созданное свойство с именем Key
. Свойство включается Key
в свойство для Select получения сгруппированных значений. Для свойства можно задать Key
псевдоним с помощью ключевого As
слова , но использовать псевдоним не требуется. Например, можно задать GroupBy для свойства свойство с именем Category
. Консолидированные значения можно получить из свойства , Category
задав для Select свойства значение new(Key As ProductCategory)
.
Вы можете получить доступ к отдельным записям в группе, включив It
свойство в Select свойство . Свойство It
содержит коллекцию записей, которые совместно используют значение в сгруппированных свойствах. Для получения отдельных It
записей можно выполнить итерацию по свойству .
Свойство GroupBy часто используется с методами агрегирования. Можно использовать следующие статистические методы:
Count()
Average(
Столбца)
Sum(
Столбца)
Max(
Столбца)
Min(
Столбца)
Where(
condition)
Any()
All(
condition)
Дополнительные сведения см. в разделах Обзор серверного веб-элемента управления LinqDataSource и Практическое руководство. Группировка и агрегирование данных с помощью элемента управления LinqDataSource.
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по