2016-07-06 68 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始終是相同的記錄是相同的。 此外,您應該設置主鍵在元數據上計算的實體