共用方式為


資料投影 (EntityDataSource)

更新:2007 年 11 月

您可以使用 Select 屬性,從 EntityDataSource 控制項傳回的物件投影特定屬性。EntityDataSource 控制項的 Select 屬性包含表示 Entity SQL 查詢中 SELECT 陳述式的字串。這個字串不會經過任何修改,且會傳遞給 ObjectQuery<T>,這個物件執行時,會傳回資料給 EntityDataSource 控制項。指定給 Select 屬性的字串使用的格式,與傳遞給 ObjectQuery<T>Select 方法的字串相同。如需 SELECT 子句定義查詢投影的使用範例,請參閱 HOW TO:執行傳回匿名型別的查詢 (Entity Framework)

注意事項:

不支援投影資料的更新。使用 Select 屬性指定投影時,資料繫結不支援更新。

下列 XML 標記使用 Select 屬性,利用 Product 型別中的 6 種屬性指定資料投影。

<asp:EntityDataSource ID="ProductDataSource"  
    ConnectionString="name=AdventureWorksEntities" 
    DefaultContainerName="AdventureWorksEntities" 
    EntitySetName="Product" OrderBy="it.ProductID" 
    Select="it.ProductID, it.Name, it.ListPrice, 
    it.Size, it.Style, it.Weight">
</asp:EntityDataSource> 

上一個 XML 範例與以下名稱為 products 的 ObjectQuery<T> 相同:

ObjectQuery<Product> products = context.Product
    .Select(it.ProductID, it.Name, it.ListPrice, 
      it.Size, it.Style, it.Weight)
    .OrderBy("it.ProductID");

傳遞參數

ObjectQuery<T> 類別的 Select 方法類似,您可以將參數傳遞給 Select 屬性定義的資料投影。您必須定義 EntityDataSource 控制項的 SelectParameters 屬性,才能夠指定查詢中 SELECT 陳述式的 ParameterCollectionSelectParameters 屬性會使用具名引數,參考 Select 屬性中的參數。

如果沒有定義 SelectParameters屬性,則不會產生參數替代。SELECT 陳述式中所有參數名稱,如果前置字元符號為 "@",,在 ParameterCollection 中都必須有一個對應的名稱。ParameterCollection 中的參數不允許為 Null 的值。

以下範例在其中一個屬性投影上使用參數,將 9 折的折扣套用到查詢中的每一筆 Product。

<asp:EntityDataSource ID="EntityDataSource6" 
        EnableViewState="False"
        EntitySetName="Products" 
        ConnectionString="name=NorthwindContext" 
        DefaultContainerName="NorthwindContext" 
        EntityTypeFilter="Products" 
        Select="it.ProductID, it.UnitsInStock, it.ProductName,
              it.UnitPrice * @Discount as UnitPrice,
              it.UnitsOnOrder as UnitsOnOrder, it.Discontinued" 
        Where="it.ProductID < 10" 
    >
    <SelectParameters>
        <asp:Parameter Name="Discount" DefaultValue=".90"
             Type="Decimal" />
    </SelectParameters>
</asp:EntityDataSource>

請參閱

概念

EntityDataSource 設計工具

其他資源

使用 EntityDataSource 進行資料選取

物件查詢 (Entity Framework)