2014-05-08 28 views
0

从Breeze的网站运行AngularJS的示例应用程序时出现此错误。微风错误:'不允许'的合并策略

这是控制器breezectl.js代码:

'use strict'; 

angular.module('mean').controller('breezeController', ['$scope', 'Global', 'dataservice', 
    function($scope, Global, dataservice) { 
     $scope.global = Global; 
     $scope.breeze = { 
      name: 'Breeze Sample' 
     }; 

     //$scope.results = dataservice; 

     function getProducts() { 
      function success(data) { 
       $scope.results = data; 
      } 
      function failed(error) { 
       $scope.results = error.message; 
      } 

      dataservice.getAllProducts() 
       .then(success) 
       .catch(failed); 
     } 

     getProducts(); 
    } 
]); 

dataservice.getAllProducts()进入捕捞(失败)与此错误消息分支道:“‘不允许’A MergeStrategy不允许附加实体当使用相同的密钥的实体已连接”

这是dataservice.js代码:

'use strict'; 

angular.module('mean').factory('dataservice', ['breeze', 'entityManagerFactory', 
    function(breeze, entityManagerFactory) { 
     var manager = entityManagerFactory.newManager(); 

     function getAllProducts(){ 
      function success(data) { 
       return data.results; 
      } 

      return breeze.EntityQuery.from('Products') 
       .using(manager).execute() 
       .then(success); 
     } 


     var service = { 
      getAllProducts: getAllProducts 
     }; 
     return service; 
    } 
]); 

注意:直接调用镨来自Restful API的产品(localhost:3000/breeze/northwind/Products)能够正常工作并返回一组代表集合中所有产品的Json对象。

+0

听起来像你正在尝试添加一个像'manager.createEntity()'和使用相同的id(null是一个相同的Id btw)的新实体 –

+0

@PWKad非常感谢你的回答,但我只是想要列出。 我很抱歉,但这不是问题。我没有更多的代码。 – jotavans

+0

您能告诉我们产品实体的Breeze元数据的样子吗? –

回答

0

史蒂夫施密特是正确的。我的metadata.json具有与数据库集合不同名称的“defaultResourceName”属性。 我将“产品”更改为“产品”,此作品。

非常感谢大家。