8

私は最近、すべての nuget パッケージを EF6、breeze 1.4.5、system.web.http.odata 5.0.0.0、および利用可能な他のすべての適切なビットの最新のものに更新しました。

ここで、xyz のような展開を含む 1 つのクエリで、次のようなエラーが発生します。

A first chance exception of type 'Microsoft.Data.OData.ODataException' occurred in System.Web.Http.OData.dll

Additional information: The request includes a $expand path which is too deep. The maximum depth allowed is 2. To increase the limit, set the 'MaxExpansionDepth' property on QueryableAttribute or ODataValidationSettings.

提案された修正を調べました。クエリ対象のブリーズの「エンドポイント」に Queryable 属性を追加すると、他のあらゆる種類の問題が発生するようです。私の推測では、それはそよ風の期待される動作を妨げ、結果を別の方法でフォーマットします。

次に、GlobalConfiguration.Configuration を介して HttpConfiguration EnableQuerySupport 拡張メソッドの使用を調べましたが、効果がないようです ( OData クエリ オプションのサポートを参照) 。

デフォルトのwebapiの動作を変更する方法を知っている人はいますか?

ありがとう。

4

1 に答える 1

20

次のように、そよ風コントローラー IQueryable メソッドに BreezeQueryable 属性を追加する必要があります...

    [BreezeQueryable(MaxExpansionDepth = 3)]
    public IQueryable<Customer> Customers()
    {
        ...
    }
于 2013-10-30T17:01:26.737 に答える