Acabo de encontrar una implementación mejor:

http://sharp-architecture.googlecode.com/svn/trunk/src/SharpArch/SharpArch.Core/DomainModel/BaseObject.cs

Y con ésta y algún atributo marcando las propiedades que intervienen
ni siquiera se necesita que las clases derivadas intervengan en Equals
y GetHashCode...

Y encima soporta natural-id!

Voy a incorporarlo :)

On 18 feb, 12:40, Juan Cuello <[email protected]> wrote:
> Vamos... que lo sigo implementando en mis clases... :)
>
> Vi una implementación hace ya mucho tiempo y siempre uso esa en una
> clase 
> base:http://devlicio.us/blogs/billy_mccafferty/archive/2007/04/25/using-eq...
>
> Esa implementación me gusta porque hace que las entidades sólo tengan
> que implementar el GetHashCode. Pero con esa implementación no puedo
> usar natural-id... Nadie es perfecto :)
>
> Por cierto, ¿por qué se sigue utilizando el Iesi Collections? Yo
> pensaba que para NH 3 desaparecería. Alguien me dijo creo que era por
> el tema de ISet. ¿Tal vez es por compatibilidad?
>
> On 17 feb, 23:41, Carlos Peix <[email protected]> wrote:
>
>
>
>
>
>
>
> > Pucha...
>
> > Retiro lo dicho entonces, tendre que investigar...
>
> > ----------------------------------
> > Carlos Peix
>
> > 2011/2/17 Fabio Maulo <[email protected]>
>
> > > para NH, en si, no es obligatorio.
> > > Peeeeeeeeeeeero:
> > > 1) la mejor collection para DDD es un set
> > > 2) set es una de la collections mas usada en dominios
> > > 3) si no tenes getHashCode/Equals y trabajas con Set es probables que en
> > > algun momentos llores
>
> > > De allí en mas podemos discutir cuanto quieras y hasta te puedo decir que
> > > para one-to-many es casi siempre preferible usar List y hacer el control 
> > > de
> > > duplicacción en el ADD solo si realmente lo necesitas (con <bag> el Add no
> > > necesita inicializar la collection).
>
> > > 2011/2/17 Carlos Peix <[email protected]>
>
> > >> e per que? El link que envio Edgar es claro al respecto...
>
> > >> Hay riesgo suponiendo que siempre trabajo con una unica sesion y con
> > >> objetos persistentes?
>
> > >> En otras palabras, es obligatorio sobre escribir Equals y GeHashcode?
>
> > >> ----------------------------------
> > >> Carlos Peix
>
> > >> 2011/2/17 Fabio Maulo <[email protected]>
>
> > >>> bah... despues no llores si no te andan los ISet
>
> > >>> 2011/2/17 Carlos Peix <[email protected]>
>
> > >>>> O podes no implementarlos...
>
> > >>>> Carlos Peix
> > >>>> (desde el teléfono móvil)
>
> > >>>> El 17/02/2011, a las 12:51, José F. Romaniello <[email protected]>
> > >>>> escribió:
>
> > >>>> hola Juan pronto estará disponible el vídeo de una VAN que hicimos el
> > >>>> sábado pasado con Nelo en AltNet hispano. En un momento de la VAN 
> > >>>> discutimos
> > >>>> este tema con Fabio..
>
> > >>>> El tema es el siguiente, cuando no tenes ID en el dominio, generalmente
> > >>>> tenes natural-id. Osea que podes usar eso para implementar Equals y
> > >>>> GetHashCode
>
> > >>>> El 17 de febrero de 2011 12:42, Juan Cuello < <[email protected]>
> > >>>> [email protected]> escribió:
>
> > >>>>> Hola,
>
> > >>>>> He visto por ahí que podemos tener una entidad del dominio sin una
> > >>>>> propiedad id que se mapee con el campo id de la base de datos. Eso me
> > >>>>> parece genial, ya que considero que el ID es de la base de datos, no
> > >>>>> tiene por qué ser del dominio.
>
> > >>>>> Pero se me ocurre una pregunta importante. En mi clase base para las
> > >>>>> entidades del dominio, tengo un Equals y GetHashCode. En el Equals, si
> > >>>>> la entidad tiene ID establecido, comparo ID's...
>
> > >>>>> ¿Cómo se haría el equals y el gethashcode si no tengo id's en la
> > >>>>> entidad?
>
> > >>>>> Gracias
>
> > >>>>> --
> > >>>>> Para escribir al Grupo, hágalo a esta dirección:
> > >>>>> <[email protected]>
> > >>>>> [email protected]
> > >>>>> Para más, visite: <http://groups.google.com/group/NHibernate-Hispano>
> > >>>>>http://groups.google.com/group/NHibernate-Hispano
>
> > >>>>  --
> > >>>> Para escribir al Grupo, hágalo a esta dirección:
> > >>>> <[email protected]>
> > >>>> [email protected]
> > >>>> Para más, visite: <http://groups.google.com/group/NHibernate-Hispano>
> > >>>>http://groups.google.com/group/NHibernate-Hispano
>
> > >>>>  --
> > >>>> Para escribir al Grupo, hágalo a esta dirección:
> > >>>> [email protected]
> > >>>> Para más, visite:http://groups.google.com/group/NHibernate-Hispano
>
> > >>> --
> > >>> Fabio Maulo
>
> > >>>  --
> > >>> Para escribir al Grupo, hágalo a esta dirección:
> > >>> [email protected]
> > >>> Para más, visite:http://groups.google.com/group/NHibernate-Hispano
>
> > >>  --
> > >> Para escribir al Grupo, hágalo a esta dirección:
> > >> [email protected]
> > >> Para más, visite:http://groups.google.com/group/NHibernate-Hispano
>
> > > --
> > > Fabio Maulo
>
> > >  --
> > > Para escribir al Grupo, hágalo a esta dirección:
> > > [email protected]
> > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a