🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #21867

Re: modyfikacja drzewa obiektów

#21867
From: Macko
Date: Thu, 09 Dec 2010 13:29
58 lines
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-mail
References: <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