Article View: alt.pl.comp.lang.csharp
Article #21859Re: QueryOver i distinct
From: Macko
Date: Mon, 27 Dec 2010 09:05
Date: Mon, 27 Dec 2010 09:05
39 lines
2729 bytes
2729 bytes
A więc zabawy z NH3 ciąg dalszy. Tym razem stanąłem na popularnym temacie tworzenia "summarisów" tzn podsumowań np. raportowych. W moim przypadku chcę wyświetlić listę filmów wraz z liczbą gatunków powiązanych z każdym filmem. Takie standardowe podsumowanie przykładowo: id | Tytuł pl | Tytuł obcy | Data premiery | Licznik gatunków ----------------------------------------------------------------- 3 | bla | bla bla | 1990-01-01 | 2 Za pomocą czystego SQLa załatwiłbym to tak select f.*, isnull(fg.licznik, 0) as licznik_gatunkow from dbo.film f left join ( select id_filmu, count(id_gatunku) as licznik from dbo.gatunki_filmow group by id_filmu ) fg on f.id = fg.id_filmu Agregacja zliczająca gatunki dla każdego filmu za pomocą QueryOver wygląda u mnie tak: GenreSummary alias = null; var genresQuery = QueryOver.Of<GatunkiFilmow>() .SelectList(lista => lista .SelectGroup(o => o.Film.Id).WithAlias(() => alias.MovieId) .SelectCount(o => o.Gatunek).WithAlias(() => alias.GenresCount)) .TransformUsing(Transformers.AliasToBean<GenreSummary>()); Teraz jak to pożenić z encją Film tzn. zjoinować id filmu tą agregacją powyżej i zwrócić nową encją MovieSummary, która będzie się różniła od encji Film dodatkową kolumną powiedzmy GenresCount typu int. Czy da to radę pożenić za pomocą QueryOver? -- Pozdro, Maćko
Technical Details
Message-ID:
<fcba19dc-7822-402e-bfed-fa5145814519@l8g2000yqh.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!l8g2000yqh.googlegroups.com!not-for-mailReferences:
<c4f37da9-ac9a-46e8-9a15-aa7f952f8c1e@p7g2000prb.googlegroups.com> <9pudeanfk8hj$.1ipmya1k3869o$.dlg@40tude.net> <e71194eb-5fd4-4189-808a-56154cb4b273@d24g2000prj.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!l8g2000yqh.googlegroups.com!not-for-mail From: Macko <maciej_rychter@o2.pl> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: QueryOver i distinct Date: Mon, 27 Dec 2010 01:05:12 -0800 (PST) Organization: http://groups.google.com Lines: 41 Message-ID: <fcba19dc-7822-402e-bfed-fa5145814519@l8g2000yqh.googlegroups.com> References: <c4f37da9-ac9a-46e8-9a15-aa7f952f8c1e@p7g2000prb.googlegroups.com> <9pudeanfk8hj$.1ipmya1k3869o$.dlg@40tude.net> <e71194eb-5fd4-4189-808a-56154cb4b273@d24g2000prj.googlegroups.com> NNTP-Posting-Host: 80.94.182.138 Mime-Version: 1.0 X-Trace: posting.google.com 1293440712 32657 127.0.0.1 (27 Dec 2010 09:05:12 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Mon, 27 Dec 2010 09:05:12 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: l8g2000yqh.googlegroups.com; posting-host=80.94.182.138; posting-account=0cTB9goAAAB7t_2APYrUFcRoIbYIHqOb User-Agent: G2/1.0 X-HTTP-Via: 1.1 webwasher (Webwasher 6.8.7.8846) X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 ( .NET CLR 3.5.30729),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit