QueryExpression sorgu=new QueryExpression (){
EntityName="product",
ColumnSet=new ColumnSet(){AllColumns=true}
};
OrderExpression order=new OrderExpresison(){
AttributeName="name", // hangı alana gore sıralama yapacagınızı belırlıyorsunuz.
OrderType=OrderType.Ascending // artan sırada sıralama yapar.Mesela bu örnek te isme gore a dan z ye dogru sıralama yapar.
};
sorgu.Orders.Add(order); // sorgumuza sortumuzu eklemeyı unutmayalım.
Yukarıdakı kod da, tum ürünleri isim alanına gore A dan Z ye dogru sıralar.
Not: Birden cok alana gore sıralama yapmak istersek OrderExpression olusturup QueryExpression ımıza eklememiz gerekir.QueryExpression ımıza ekledıgımız sırada sıralama yapar.
Örnek 2:Birden cok alana gore sıralama
public static BusinessEntityCollection GetDynamicEntitiesWithFiltersOrdered(string entityName, string[] attributes, string[] fields, string[] values, string[] orderfields, bool[] orderAscending, ICrmService serv)
{
var filters = new FilterExpression { FilterOperator = LogicalOperator.And };
for (int i = 0; i < fields.Length; i++)
{
var condition = new ConditionExpression
{
AttributeName = fields[i],
Operator = ConditionOperator.Equal,
Values = new[] { values[i] }
};
filters.Conditions.Add(condition);
}
var query = new QueryExpression
{
EntityName = entityName,
ColumnSet = new ColumnSet(attributes),
Criteria = filters
};
for (int i = 0; i < fields.Length; i++)
{
var oneExpression = new OrderExpression
{
AttributeName = orderfields[i],
OrderType = (orderAscending[i] ? OrderType.Ascending : OrderType.Descending)
};
query.Orders.Add(oneExpression);
}
var retrieve = new RetrieveMultipleRequest { Query = query, ReturnDynamicEntities = true };
var retrieved = (RetrieveMultipleResponse)serv.Execute(retrieve);
return retrieved.BusinessEntityCollection;
}
}
Hiç yorum yok:
Yorum Gönder