Article View: alt.pl.comp.lang.csharp
Article #21796Re: [NH] złożone zapytanie na POCOsa
From: GrzybSon
Date: Wed, 20 Oct 2010 07:27
Date: Wed, 20 Oct 2010 07:27
68 lines
3044 bytes
3044 bytes
Witam,
> Zakładając że masz:
>
> class Produkt
> {
> public virtual int Id { get; set; }
> public virtual string Nazwa { get; set; }
> <...>
> public virtual TypProduktu Typ { get; set; }
> }
>
> class TypProduktu
> {
> public virtual int Id { get; set; }
> <...>
> prop virtual string Nazwa { get; set; }
> }
>
> i mapowanie typu References na Produkt.Typ do TypProduktu,
>
> oraz DTO:
>
> class ProduktZTypem
> {
> <...>
> public string NazwaProduktu { get; set; };
> public string NazwaTypu { get; set; };
> <...>
> }
>
> to będzie coś w tą okolicę:
>
> var prodZTypami = new List<ProduktZTypem>();
> var produkty = session.CreateCriteria<Produkt>()
> .SetFetchMode("Typ", FetchMode.Eager);
> .Add(jakieś tam warunki i inne ograniczenia)
> .List<Produkt>()
> .ToList()
> .ForEach(p => prodZTypami.Add(new ProduktZTypem
> {
> NazwaProduktu = p.Nazwa,
> NazwaTypu = p.Typ.Nazwa
> }
> ));
>
> I to nie spowoduje zapytania N+1 bo Typ masz już nie jako
> proxy tylko jako entity ;-).
>
> Z leniwym .ToList().ForEach(lambda) to skrót myślowy ;-).
>
Dzięki za to :)
Ale teraz interesuje mnie jak użyć funkcji matematycznych w NH?
W bazie mamy pewne dane geospatialne i np. potrzebujemy wyznaczyć najbliższą
miejscowość dla zadanych współrzędnych (długość, szerokość). Do tego
potrzebne są funkcje trygonometryczne jak SIN, COS. W poprzedniej wersji
bazy do takich obliczeń używałem UDFów C#.
Czy HQL przewiduje jakiś minimalny zestaw funkcji trygonometrycznych do
użycia na każdej bazie?
Czy ICriterionem da się filtrować dane z użyciem takich najprostszych
funkcji jak SIN COS?
--
Pozdro,
Maćko
Technical Details
Message-ID:
<i9m5l2$3ar$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!not-for-mailReferences:
<i9k3ui$q7n$1@news.onet.pl> <10ibcbohh6ur1.1fgo6k5548jv0$.dlg@40tude.net> <i9k8nf$8ue$1@news.onet.pl> <bgexfen4jbfy$.11u8y5rg62a7p$.dlg@40tude.net> <i9kekl$p4r$1@news.onet.pl> <86gdab82dzt0.1adnit32d5lgv$.dlg@40tude.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!not-for-mail From: "GrzybSon" <grzybson@poczta.fm> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: [NH] złożone zapytanie na POCOsa Date: Wed, 20 Oct 2010 09:27:28 +0200 Organization: http://onet.pl Lines: 70 Message-ID: <i9m5l2$3ar$1@news.onet.pl> References: <i9k3ui$q7n$1@news.onet.pl> <10ibcbohh6ur1.1fgo6k5548jv0$.dlg@40tude.net> <i9k8nf$8ue$1@news.onet.pl> <bgexfen4jbfy$.11u8y5rg62a7p$.dlg@40tude.net> <i9kekl$p4r$1@news.onet.pl> <86gdab82dzt0.1adnit32d5lgv$.dlg@40tude.net> NNTP-Posting-Host: 62-121-97-180.home.aster.pl X-Trace: news.onet.pl 1287559650 3419 62.121.97.180 (20 Oct 2010 07:27:30 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Wed, 20 Oct 2010 07:27:30 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5512 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512 X-Antivirus: avast! (VPS 101019-1, 2010-10-19), Outbound message X-Antivirus-Status: Clean MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit