客户端查询按扩展属性过滤

时间:2013-01-10 07:08:52

标签: breeze

我需要在哪里获取已删除项目的数量,并获取未删除项目的更改集/集合。

我如何实现这一目标?

我可以使用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 个答案:

答案 0 :(得分: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]);

我希望这会有所帮助。