Article View: alt.pl.comp.lang.csharp
Article #21867Re: modyfikacja drzewa obiektów
From: Macko
Date: Thu, 09 Dec 2010 13:29
Date: Thu, 09 Dec 2010 13:29
58 lines
3275 bytes
3275 bytes
> Generanie to zale y jak robisz t konwersj "spowrotem".
DTO czyli tam i spowrotem: no ja bym to zrobił że DTO zawiera tylko
informacje aktualne
tzn. nie ma informacji o usuniętych czy dodanych np gatunkach filmów,
zawiera zwyczajnie listę gatunków przypisanych do filmu:
public class MovieDTO
{
...
public List<GatunkeDTO> gatunki
{ get; set; }
...
}
public class GatunekDTO
{
public int Id
{ get; set; }
public string Nazwa
{ get; set; }
}
No załóżmy, że jest to taka postać (resztę wyciachałem co by nie
zaśmiecać).
Więc MovieDTO nie będzie miał informacji o usuniętych / dodanych
gatunkach filmów względem oryginału.
Dobra teraz dto -> domenę:
do właściwości obiektu klasy MovieDomain przepisujemy na głupa dane
dotyczące samego filmu (id, tytuł, itp). Teraz gatunki filmów:
iterujemy po liście gatunków filmów w dto (oczywiście to wszystko w
ramach sesji) i session.Get/Load wypełniamy listę gatunków MovieDomain
przez Add do listy. Na końcu session.Save(movieDomain).
Oczywiście dla filmu jest włączone kaskadowe zapisywanie danych.
Co się stanie przy takim podejściu: czy NH wykryje co trzeba usunąć /
dodać z listy gatunków filmów?
Czy raczej trzebaby zrobić trochę inaczej: w sesji pobrać film razem z
listą gatunków filmów z zachłannym ładowaniem powiązań, potem
przepisać dla samego filmu pola (tytuły, data premiery, itd), a
następnie przelecieć listę gatunków dla filmu i porównać z listą
gatunków w dto i ewentualnie wywalić coś z domeny lub dodać.
> Ja lubie miota po okolicy obiekty domenowe, bad practice, ale
> za to wygodnie ;-).
Odpada ci mozolne struganie DTO.
--
Pozdro,
Maćko
Technical Details
Message-ID:
<6d6b6f0b-25dd-4a58-a6d1-e033a06d544e@r16g2000prh.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder3.cambriumusenet.nl!feed.tweaknews.nl!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!newshosting.com!69.16.185.16.MISMATCH!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!r16g2000prh.googlegroups.com!not-for-mailReferences:
<d6c449aa-51c5-49af-bcc7-5090bf6c1977@j19g2000prh.googlegroups.com> <133gxqle4h7mj$.ayrda4v2quii.dlg@40tude.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder3.cambriumusenet.nl!feed.tweaknews.nl!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!newshosting.com!69.16.185.16.MISMATCH!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!r16g2000prh.googlegroups.com!not-for-mail From: Macko <maciej_rychter@o2.pl> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: modyfikacja drzewa obiektów Date: Thu, 9 Dec 2010 05:29:07 -0800 (PST) Organization: http://groups.google.com Lines: 63 Message-ID: <6d6b6f0b-25dd-4a58-a6d1-e033a06d544e@r16g2000prh.googlegroups.com> References: <d6c449aa-51c5-49af-bcc7-5090bf6c1977@j19g2000prh.googlegroups.com> <133gxqle4h7mj$.ayrda4v2quii.dlg@40tude.net> NNTP-Posting-Host: 80.94.182.138 Mime-Version: 1.0 X-Trace: posting.google.com 1291901347 8434 127.0.0.1 (9 Dec 2010 13:29:07 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 9 Dec 2010 13:29:07 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: r16g2000prh.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.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