Поделиться через


LinqDataSource.Select Свойство

Определение

Возвращает или задает свойства и вычисляемые значения, включенные в извлеченные данные.

public:
 property System::String ^ Select { System::String ^ get(); void set(System::String ^ value); };
public string Select { get; set; }
member this.Select : string with get, set
Public Property Select As String

Значение свойства

Строка, используемая для создания предложения Select.

Примеры

В следующем примере показано, как задать свойство Select подмножество свойств в объекте данных.

<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>
<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>

В следующем примере показано, как получить значения в свойстве, которое использовалось для группировки данных, и получить среднее значение для группированных записей. Ключевое слово Key содержит свойство, которое использовалось для группировки данных. В этом примере Key будет содержать общие значения из свойства ProductCategory.

<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>

Комментарии

Если свойство Select не задано, элемент управления LinqDataSource извлекает все свойства (столбцы данных) из объекта данных. Свойство Select используется для получения подмножества свойств из объекта или вычисления новых значений при извлечении данных.

Вы указываете, какие свойства необходимо извлечь, задав свойство Select именам свойств, которые необходимо включить в возвращаемые данные.

При получении подмножества свойств из объекта данных элемент управления LinqDataSource динамически создает класс, содержащий только свойства, указанные в свойстве Select. Класс также создается динамически, если вы вычисляете свойства, которые не являются свойствами в объекте данных. В таких случаях объект, возвращаемый из запроса, не является экземпляром класса, указанного в свойстве TableName. Вместо этого необходимо использовать метод new в свойстве Select, чтобы указать, что новый класс возвращается из запроса. Например, чтобы возвращать только свойства FirstName и LastName из объекта, содержащего больше этих свойств, задайте для свойства Select значение new(FirstName, LastName). Элемент управления LinqDataSource динамически создаст новый класс, указанный в методе new.

Ключевое слово As можно использовать для назначения псевдонима выбранному значению. При назначении псевдонима необходимо включить псевдонимы в метод new. Любой элемент управления, привязанный к данным, который привязывается к результатам элемента управления LinqDataSource, должен ссылаться на свойство по псевдониму. Например, если для свойства Select задано значение new(Region As SalesRegion, Revenue / 1000 As RevenueThousands), элемент управления с привязкой к данным может получить доступ к двум свойствам, SalesRegion и RevenueThousands.

Функция new используется в свойстве Select в соответствии с условиями, указанными в следующей таблице.

Выбирать Использование новых Пример
Одно свойство. new не требуется. Select="Category"
Несколько свойств. new необходимы. Select="new(Category, Name)"
Одно или несколько свойств с псевдонимом. new необходимы. Select="new(Category As CategoryGroup)"

Если вы хотите включить автоматическое изменение данных, но не хотите отображать все свойства из объекта данных, не устанавливайте свойство Select. Вместо этого управляйте отображением с помощью элемента управления с привязкой к данным. При использовании элемента управления DetailsView или элемента управления GridView необходимо также задать для свойства AutoGenerateRows или свойства AutoGenerateColumns значение false. Все значения, которые не отображаются в элементе управления с привязкой к данным, хранятся в состоянии представления. Они передаются в источник данных без изменений при выполнении обновления данных.

При группировке данных в запросе можно включить агрегатные методы в свойство Select. Вы можете использовать следующие статистические методы:

  • Count()

  • столбца

  • столбца

  • столбца

  • столбца

  • условие Where()

  • Any()

  • условие All()

Дополнительные сведения см. в обзоре управления веб-сервером LinqDataSource и how to: Group and Aggregate Data Using the LinqDataSource Control.

При группировке данных можно включить Key и It, которые динамически создаются в свойстве Select. Свойство Key ссылается на значения в свойстве или свойствах, которые использовались для группировки данных. Например, если вы группируются по свойству с именем Category, свойство Key будет содержать каждое уникальное значение в свойстве Category. Свойство It относится к коллекции отдельных записей в группе данных. Можно выполнить итерацию по свойству It, чтобы получить отдельные записи, которые были консолидированы в операции группировки. Например, если вы группируете свойство с именем Category, свойство It содержит все отдельные записи, которые имеют общее значение в свойстве Category.

Если вы включаете ключевое слово It в свойство Select при группировке данных, необходимо назначить псевдоним ключевому слову It. Элемент управления LinqDataSource создает исключение, если It не имеет псевдонима. Псевдоним можно назначить ключевому слову Key, но это не обязательно.

Применяется к