J'utilise breeze pour interroger une table de clients. Je dois implémenter une requête très complexe, j'ai donc décidé de passer un paramètre à la méthode et de laisser le serveur effectuer la requête. Le problème est qu'en utilisant la méthode PRENDRE de BREEZE la liste des clients renvoyée par le serveur a une valeur de ordre différent à partir des données renvoyées par le serveur.
J'ai fait quelques tests, et seul cet ordre est modifié lorsque j'utilise la méthode TAKE of BREEZE. Voici un extrait de mon code dans le serveur et dans le client :
//CLIENT
function(searchText,resultArrayObservable, inlineCountObservable){
query = new breeze.EntityQuery("CustomersTextSearch");
.skip(0)
.take(30)
.inlineCount(true)
.withParameters({ '': searchText});
return manager.executeQuery(query).then(function(data){
//The data results are not in the same order as the server resturn.
inlineCountObservable(data.inlineCount);
resultArrayObservable(customerDto.mapToCustomerDtos(data.results));
});
}
//SERVER ASP.NET WEB API
[HttpGet]
public IQueryable<Customer> CustomersTextSearch(string textSearch = "")
{
//Here, customers has the rigth order.
var customers= _breezeMmUow.Customers.GetBySearchText(textSearch, CentreId);
return customers;
}
Ce n'est peut-être pas un BUG, peut-être que je fais quelque chose d'incorrect. Quelqu'un peut-il m'aider ?
-------------EDIT-------------
1.3.2 Correction d'un bug dans Breeze/EF impliquant une seule requête avec "expand", "orderBy", et "take" effectuant un ordre incorrect.
J'ai trouvé dans la breeze page, que le problème a été corrigé, mais j'ai la dernière version et cela ne fonctionne toujours pas bien avec PRENDRE .