2016-07-06 71 views
0

我正在使用GUID作为其主键类型的项目,我也在客户端使用breeze和angular。问题是,当我尝试在客户端更新数据时,接收到的数据被添加到旧数据中,但是我想刷新数据。我使用的代码首先approache生产用于breeze.js 元这是我的一块模型类:Breeze在刷新时复制数据

public class Peripherals 
{ 
    public Guid PeripheralId { get; set; } 
    public string Name { get; set; } 
    public string IpAddress { get; set; } 

和这个函数刷新数据:

function getAll(forceRemote, page, size, nameFilter) { 
     var self = this; 
     // Only return a page worth of devices 
     var take = size || 20; 
     var skip = page ? (page - 1) * size : 0; 

     if (self._areItemsLoaded() && !forceRemote) { 
      // Get the page of devices from local cache 
      return self.$q.when(getByPage()); 
     } 

     // Load all devices to cache via remote query 
     return EntityQuery.from('Devices')    
      .orderBy(orderBy) 
      .toType(entityName) 
      .using(self.manager).execute() 
      .then(querySucceeded) 
      .catch(self._queryFailed); 


     function querySucceeded(data) { 
      self._areItemsLoaded(true); 
      self.log('Retrieved [Devices] from remote data source', data.results.length, true); 
      return getByPage(); 
     } 

     function getByPage() { 
      var predicate = null; 

      if (nameFilter) { 
       predicate = _devicePredicate(nameFilter); 
      } 

      var devices = EntityQuery.from(entityName) 
       .where(predicate) 
       .orderBy(orderBy) 
       .toType(entityName) 
       .take(take).skip(skip) 
       .using(self.manager) 
       .executeLocally(); 

      return devices; 
     } 
    } 

与问题GUID类型?或者是什么?

回答

0

,你需要确保的GUID始终是相同的记录是相同的。 此外,您应该设置主键在元数据上计算的实体