Article View: alt.pl.comp.lang.csharp
Article #21864[NH3] modyfikacja drzewa obiektów
From: Macko
Date: Tue, 07 Dec 2010 08:28
Date: Tue, 07 Dec 2010 08:28
56 lines
3143 bytes
3143 bytes
Cze,
coraz bardziej jestem zachwycony NH3, ale mam pytanie dotyczące edycji
struktury hierarchicznej obiektów.
Przykład nieśmiertelnej bazy filmów, chcemy zmodyfikować dane
dotyczące pojedynczego filmu. Film ma oprócz tytułu polskiego, tytuł
oryginalny, datę premiery no i kolekcję gatunków. Mapowanie jest table-
per-class. Oczywiście gatunek z filmem jest powiązany fizycznie tabelą
intersekcji.
Powiedzmy że wygląda to tak:
public class Movie
{
public virtual int Id;
public virtual string TytulPolski
{ get; set; }
public virtual string TytulObcy
{ get; set; }
public virtual List<Gatunek> gatunki;
{ get; set; }
}
public class Gatunek
{
public virtual int Id
{ get; set; }
public virtual string Nazwa
{ get; set; }
}
Kejs jest dość popularny, pobieramy z bazy dane dotyczące filmu czyli
Movie wraz z kolekcją powiązanych gatunków, powiedzmy, że konwertujemy
tą klasę do odpowiadającego DTO (bez zbędnych powiązań). Poddajemy DTO
edycji - zmieniamy np tytuł polski, tytuł obcy, datę premiery, usuwamy
gatunek powiązany z filmem, a dodajemy inny. Teraz znowu konwertujemy
DTO -> model domenowy, podłączamy do sesji ten obiekt i wykonujemy
session.Save(movieDomain).
NH3 napewno sobie poradzi z zaktualizowaniem danych dotyczących samego
filmu, ale jak się ma sprawa dotycząca powiązanej kolekcji gatunków?
Czy NH będzie wiedział, które gatunki, których nie ma kolekcji trzeba
usunąć z bazy, a nowe trzeba dodać? Czy to da sie załatwić pojedynczym
session.Save(movieDomain) czy trzeba iterować po tej kolekcji i
sprawdzać w bazie? Wogóle pytanie czy jeżeli poddajecie jakiś graf
obiektów edycji to czy przechodzicie na DTO czy pracujecie na
obiektach z domeny?
--
Pozdro,
Maćko
Technical Details
Message-ID:
<d6c449aa-51c5-49af-bcc7-5090bf6c1977@j19g2000prh.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!plix.pl!newsfeed1.plix.pl!news-out2.kabelfoon.nl!newsfeed.kabelfoon.nl!bandi.nntp.kabelfoon.nl!198.186.194.249.MISMATCH!news-out.readnews.com!transit3.readnews.com!postnews.google.com!j19g2000prh.googlegroups.com!not-for-mailShow 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!plix.pl!newsfeed1.plix.pl!news-out2.kabelfoon.nl!newsfeed.kabelfoon.nl!bandi.nntp.kabelfoon.nl!198.186.194.249.MISMATCH!news-out.readnews.com!transit3.readnews.com!postnews.google.com!j19g2000prh.googlegroups.com!not-for-mail From: Macko <maciej_rychter@o2.pl> Newsgroups: alt.pl.comp.lang.csharp Subject: [NH3] modyfikacja drzewa obiektów Date: Tue, 7 Dec 2010 00:28:51 -0800 (PST) Organization: http://groups.google.com Lines: 65 Message-ID: <d6c449aa-51c5-49af-bcc7-5090bf6c1977@j19g2000prh.googlegroups.com> NNTP-Posting-Host: 80.94.182.136 Mime-Version: 1.0 X-Trace: posting.google.com 1291710531 12057 127.0.0.1 (7 Dec 2010 08:28:51 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 7 Dec 2010 08:28:51 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: j19g2000prh.googlegroups.com; posting-host=80.94.182.136; posting-account=0cTB9goAAAB7t_2APYrUFcRoIbYIHqOb User-Agent: G2/1.0 X-HTTP-Via: 1.1 webwasher (Webwasher 6.8.7.8378) 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