Thursday, 19 February 2009

Group By in dodatne SQL funkcije


Opis:
Kako uporabiti Group by ali podobne funkcije nad podatki, ki jih pozanamo iz SQL-a. (Sum, Count, max, min,.....). 

Rešitev:
Narediti moramo objekte, ki dedujejo od Analise in AnaliseList. Implementirati lastnosti, ki so potrebne na teh objektih uporabiti public konstruktor brez parametrov. Seznam polj katere bomo poterebovali iz podatkovne baze, ter javne lastnosti le teh. Enako kot na vseh ostalih PBBusinessBase objektih. AnaliseList je enak kot drugi List objekti, doda se samo implementacija kriterija, ki je opisana spodaj v primeru. Obvezna uporaba Transformer Objekta, ker nam takšen način uporabe kriterija vrne Array[], ki ga je potrebno transformirat. Za to poskrbi Transformer objekt, ki uporablja javne lastnosti objekta in javni konstruktor. Obvezno moramo poskrbeti da uporabimo Alias, ki je enak imenu lastnosti.

Primer:
var projections = Projections.ProjectionList()
                        .Add(Projections.Sum("Qty"),"Qty")
                        .Add(Projections.Max("ProductName"), "ProductName")
                        .Add(Projections.GroupProperty("ProductId"), "ProductId");                    
_iCriteria.SetMaxResults(5).AddOrder(Order.Desc("Qty"));_iCriteria.SetProjection(projections).SetResultTransformer(Transformers.AliasToBean(typeof(WOrderItemAnalise)));

Zadržki:


Vir:
http://japikse.blogspot.com/2009/02/using-projections-and-transformers-in.html

0 comments:

Post a Comment