2012-02-15 84 views
2

我正在使用EntityDataSource並使用CommandText屬性創建投影以跨多個表進行查詢。我想允許分頁,但是當我運行的代碼,我得到的是說與EntityDataSource的分頁錯誤

對於EntityDataSource,如果查詢指定了投影和 啓用分頁,排序表達式必須定義一個錯誤。無論是 OrderBy屬性或設置AutoGenerateOrderByClause設置爲true

奇怪的事情是,我已經設置了AutoGenerateOrderByClause爲true,錯誤仍然存​​在。我不確定此時該做什麼。這是我的示例EntityDataSource代碼。

<asp:EntityDataSource runat="server" ID="EntityDataSource" 
    ConnectionString="name=AssetRegistryEntities" 
    DefaultContainerName="AssetRegistryEntities" 
    CommandText="SELECT a.astName, a.astDescription, r.rolFK_adCN 
       FROM AssetRegistryEntities.Assets as a 
       JOIN AssetRegistryEntities.Roles as r ON r.rolFK_astID = a.astID 
       WHERE r.rolFK_adCN = 'dpellerin' 
       AND r.rolTypeCode = 'PRIANALYST'" 
    AutoGenerateOrderByClause="true"> 
</asp:EntityDataSource> 

任何人都知道如何使分頁工作與此?

回答

4

你有投影。要麼擺脫SELECT或者也添加OrderBy =「it.astID」

+0

這奏效了!不知道我完全理解爲什麼。必須做更多的閱讀。謝謝! – Dana 2012-02-15 17:27:40

1

只是爲了澄清AFD接受的答案。

更改EntityDataSource以下幾點:

<asp:EntityDataSource runat="server" ID="EntityDataSource" 
    ConnectionString="name=AssetRegistryEntities" 
    DefaultContainerName="AssetRegistryEntities" 
    OrderBy="it.astID" 
    CommandText="SELECT a.astName, a.astDescription, r.rolFK_adCN 
       FROM AssetRegistryEntities.Assets as a 
       JOIN AssetRegistryEntities.Roles as r ON r.rolFK_astID = a.astID 
       WHERE r.rolFK_adCN = 'dpellerin' 
       AND r.rolTypeCode = 'PRIANALYST'" 
    AutoGenerateOrderByClause="true"> 
</asp:EntityDataSource>