NSS
NSS

Reputation: 2022

Client Side Query to filter by extended properties

I have a need where i want to get the count of deleted items and get change set/collection for items that are not deleted.

How can i achieve that ?

i am able to do it using the LINQJS, but was wondering if there is more proper way of doing it.

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

Upvotes: 2

Views: 238

Answers (1)

Jay Traband
Jay Traband

Reputation: 17052

The EntityManager.getEntities call is overloaded (see: http://www.breezejs.com/sites/all/apidocs/classes/EntityManager.html#method_getEntities ) so that you can simply ask for those entities within the entityManager that are of specific types or in specified states. So for 'deleted, try this:

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

or if you wanted just the Added or Modified entities

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

I hope this helps.

Upvotes: 1

Related Questions