Breezeを使用してASP.NetWebAPIエンドポイントをクエリしようとしていますが、クエリが失敗します。データオブジェクトには次のものが含まれています。
internalError: TypeError
arguments: Array[2]
0: "createCtor"
1: null
length: 2
__proto__: Array[0]
get message: function () { [native code] }
get stack: function () { [native code] }
set message: function () { [native code] }
set stack: function () { [native code] }
type: "non_object_property_load"
データオブジェクトにはメッセージ(およびresponsetext)プロパティがあり、クエリからの完全なjson応答が含まれています。これは正常に見え、生成されたメタデータは応答と一致します。応答のステータス200も記録されます。
それで、クライアント側のオブジェクトへの応答のマッピングに何らかの問題があると思いますか?
Breezeバージョン0.85.2のNuGetパッケージを使用しています
サンプルのToDoプロジェクトを同じ環境で正常に実行することができます
私のプロジェクトでは、さまざまなアセンブリと名前空間のドメインオブジェクト、コンテキストなどをすべて使用していますが、このバージョンでサポートされていることを理解しましたか?
また、プロパティの1つは列挙型です。メタデータではこれは次のように定義されます{\"name\":\"State\",\"type\":\"Edm.Self.State\",\"nullable\":\"false\"}]
が、応答では整数として渡されます。
クライアント側でこれをさらにデバッグする方法のヒントを探しています
アップデート
作業サンプルを私のコードと比較すると、エラーはこの関数に起因しているように見えます。
/**
Returns the constructor for this EntityType.
@method getEntityCtor
@return {Function} The constructor for this EntityType.
**/
ctor.prototype.getEntityCtor = function () {
if (this._ctor) return this._ctor;
var typeRegistry = this.metadataStore._typeRegistry;
var aCtor = typeRegistry[this.name] || typeRegistry[this.shortName];
if (!aCtor) {
var createCtor = v_modelLibraryDef.defaultInstance.createCtor;
if (createCtor) {
aCtor = createCtor(this);
} else {
aCtor = function() {
};
}
}
this._setCtor(aCtor);
return aCtor;
};
v_modelLibraryDefのdefaultInstanceプロパティは、実行中のコードでは定義されていません-それを実現するためのbreezeの構成には何が欠けていますか?
アップデート2-解決しましたが、その理由
さて、これは機能しました-ノックアウトへの参照がありませんでした(使用する予定でしたが、それほど遠くはありませんでした)-ノックアウトについて言及していないそよ風の前提条件に少し誤解されました。ノックアウトなしでこれをどのように機能させることができたかを説明し、それがバグである場合、ポイントはあなたのものです