私たちのプロジェクトでは、サーバー上で射影クエリを実行しています。プロジェクション クエリのリソース名は、EntityType と同じ名前です。結果を受け取ると、Breeze は結果を EntityType に詰め込もうとします。コードをステップ実行した後、これはvisitAndMerge
関数で発生すると思います。
if (mappingContext.query && nodeContext.nodeType === "root" && !meta.entityType) {
meta.entityType = mappingContext.query._getToEntityType &&
mappingContext.query._getToEntityType(mappingContext.entityManager.metadataStore);
}
_getToEntityType
最終的に、_getFromEntityType
リソースを EntityType と一致させる呼び出し。これがバグなのか、それとも Breeze のルールによるものなのかは定かではありませんが、リソース名を EntityType に一致させたくない場合があったため、この問題を取り上げることにしました。