breezejs:尝试使用标准ODATA服务配置breeze

时间:2013-08-29 10:14:35

标签: javascript breeze

在使用微风WebAPI控制器工作了几个月之后,我现在要开始一个带有标准WebAPI控制器的新项目(我对它并不感到兴奋,我感觉不能完全没有依靠微风......)

无论如何,我正在尝试在客户端配置breeze并且我遇到了异常:

'无法获取未定义或空引用的属性«jsonResultsAdapter'

以下是我配置breezejs的方法。

  • 我已将datajs.js添加到我的项目中(当然还有html页面)
  • 微风服务配置

    var service = new breeze.DataService({
       serviceName: ('http://localhost:52446/api'),        
       adapterName: 'OData'
     });
    
    var manager = new breeze.EntityManager({ dataService: service });
    
    
    //skip irrelevant code
    
    
    
    function search() {
      var query = breeze.EntityQuery.from("Mandate");
    
      return manager.executeQuery(query.using(service)).then(function (result) {
      }).fail(function (error) {
          logger.error(error);
      });
    }
    

当我调试breezejs时:

  proto.using = function (obj) {
    if (!obj) return this;
    var eq = this._clone();
    processUsing(eq, {
        entityManager: null,
        dataService: null,
        queryOptions: null,
        fetchStrategy: function (eq, val) { eq.queryOptions = (eq.queryOptions || new QueryOptions()).using(val) },
        mergeStrategy: function (eq, val) { eq.queryOptions = (eq.queryOptions || new QueryOptions()).using(val) },
        jsonResultsAdapter: function (eq, val) { eq.dataService = (eq.dataService || new DataService()).using({ jsonResultsAdapter: val }) }
    }, obj);
    return eq;
};

jsonResultAdapter为null且未设置。

为什么?

1 个答案:

答案 0 :(得分:1)

没关系,我通过在创建EntityManager之前添加以下行来使其工作:

breeze.config.initializeAdapterInstances({ dataService: "OData" });

Breeze Team,您能解释一下我为什么需要这样做,因为我已经在DataService中设置了adpaterName:“OData”.....