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);
4

1 回答 1

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]);

我希望这有帮助。

于 2013-01-10T17:40:01.153 回答