0

私はそよ風の世界に慣れていませんが、アプリケーションで使用したいと考えています。Northwind.sdf データベースに基づく単純な ASP.Net Api OData サービスでテストしてみました。

DataService プロジェクトには、単純なコントローラーがあります。

[BreezeController]
public class CategoriesController : ODataController
{
    readonly EFContextProvider<NORTHWNDContext> contextProvider =
        new EFContextProvider<NORTHWNDContext>();

    [HttpGet]
    [EnableBreezeQuery]
    public IQueryable<Category> GetCategories()
    {
        return contextProvider.Context.Categories;
    }

    [HttpPost]
    public SaveResult SaveChanges(JObject saveBundle)
    {
        return contextProvider.SaveChanges(saveBundle);
    }
}

そして、私が呼び出すクライアントで:

breeze.config.initializeAdapterInstance("dataService", "webApiOData", false);

var manager = new breeze.EntityManager({
    dataService: new breeze.DataService({
        serviceName: "http://localhost:18384/",
        hasServerMetadata: true,
        adapterName: "webApiOData"
    })
});

breeze.EntityQuery.from('Categories').using(manager).execute();

この方法でdatajs.jsファイルに問題が発生する

var dispatchHandler = function (handlerMethod, requestOrResponse, context) {
    /// <summary>Dispatches an operation to handlers.</summary>
    /// <param name="handlerMethod" type="String">Name of handler method to invoke.</param>
    /// <param name="requestOrResponse" type="Object">request/response argument for delegated call.</param>
    /// <param name="context" type="Object">context argument for delegated call.</param>

    var i, len;
    for (i = 0, len = handlers.length; i < len && !handlers[i][handlerMethod](requestOrResponse, context); i++) {
    }

    if (i === len) {
        throw { message: "no handler for data" };
    }
};

「データのハンドラーがありません」という例外が常にスローされますが、わかりません。のようなデフォルトの odata ハンドラーがすでにいくつかあります。

var handlers = [odata.jsonHandler, odata.atomHandler, odata.xmlHandler, odata.textHandler];

誰かがこの問題を手伝ってくれますか? ありがとう。

4

2 に答える 2

0

サービスが OData バージョン 4 を使用している場合、DataJsと本質的にBreezeJs (datajs を使用する) は、発見したようにこの例外をスローします。

Breeze には、これに関する未解決の問題があります: https://github.com/Breeze/breeze.js/issues/39。この BreezeJs アダプターを使用して、OData バージョン 4.0 の問題を解決できるようです: https://github.com/tschettler/breezejs-odata4-adapter

上記を確認する 2014 年 5 月現在のステータス レポートは次のとおりです

OData バージョン 4 の場合、ここで説明されているように、Olingo と呼ばれる別の JavaScript ライブラリを使用できます: http://olingo.apache.org/doc/javascript/index.html

指定されたサポートされているバージョンのライブラリの概要は次のとおりです: http://www.odata.org/libraries/

于 2017-01-03T15:43:28.880 に答える