2012-02-15 8 views
2

私はEntityDataSourceを使用していて、CommandTextプロパティを使用して投影を作成して複数のテーブルを照会しています。私は、ページングを許可したいが、私は、コードを実行したとき、私は、クエリが投影を指定し、 ページングが有効になっている場合は、並べ替え式を定義する必要があり、EntityDataSourceについてはEntityDataSourceのページングエラー

を言うエラーが出ます。どちらの真

奇妙なことに のOrderByプロパティまたは設定AutoGenerateOrderByClauseを設定するには、私がtrueにAutoGenerateOrderByClauseを設定しているとされ、エラーが解消されません。私はこの時点で何をすべきか分かりません。私の例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

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> 
関連する問題