LinqDataSource.Select 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置属性和计算值,它们包含在检索到的数据中。
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 的任何数据绑定控件都必须通过别名引用 属性。 例如,如果将 属性设置为 Selectnew(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()
Average(
列)
Sum(
列)
Max(
列)
Min(
列)
Where(
condition)
Any()
All(
condition)
有关详细信息,请参阅 LinqDataSource Web 服务器控件概述 和 如何:使用 LinqDataSource 控件对数据进行分组和聚合。
对数据进行分组时,可以在 属性中包含 Key
Select 和 It
,它们是动态创建的属性。 属性 Key
引用用于对数据进行分组的 一个或多个属性中的值。 例如,如果按名为 Category
的属性分组, 属性 Key
将包含 属性 Category
中的每个唯一值。 属性 It
引用一组数据中单个记录的集合。 可以循环访问 属性, It
以检索已在分组操作中合并的单个记录。 例如,如果按名为 Category
的属性分组, It
属性包含所有在 属性中 Category
共享公共值的单个记录。
如果在 It
对数据进行分组时在 Select 属性中包含 关键字,则必须为 It
关键字分配别名。 如果没有It
别名,控件LinqDataSource将引发异常。 可以为 关键字分配别名 Key
,但这不是必需的。
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈