2013-01-10 88 views
2

我有一個需要在哪裏我要獲取已刪除項目的計數並獲取未刪除項目的更改集/集合。通過擴展屬性過濾客戶端查詢

我該如何做到這一點?

我能夠使用LINQJS來做,但想知道是否有更正確的方法來做到這一點。

var countryType = manager.metadataStore.getEntityType("Country"); 
      var countries = manager.getEntities(countryType); 

      var deletedCount = Enumerable.From(countries) 
          .Where(function (x) { 
           return x.entityAspect.entityState == "Deleted" 
          }).Count(); 

      self.totalRows(self.totalServerRows() - deletedCount); 

      var queryResult = Enumerable.From(countries) 
           .OrderBy(function(x){ x.Country_Code }) 
           .Where(function (x) { 
            return x.entityAspect.entityState != "Deleted" 
           }) 
           .Skip(self.pageIndex() * self.pageSize()) 
           .Take(self.pageSize()) 
           .ToArray(); 
      self.list(queryResult); 

回答

1

的EntityManager.getEntities調用過載(見:http://www.breezejs.com/sites/all/apidocs/classes/EntityManager.html#method_getEntities),這樣就可以簡單地要求在指定狀態特定類型或的EntityManager的內這些實體。因此,對於「被刪除,試試這個:

var deletedEntities = em.getEntities(null, [EntityState.Deleted]); 

,或者如果你想只是添加或修改實體

var deletedEntities = em.getEntities(null, [EntityState.Added, EntityState.Modified]); 

我希望這有助於。