De todas formas con el asunto del no tener Id en las entidades ConfORM tiene
muy poco a que ver
Febrero 2009
*The POID is only part of the persistence and we don’t have the ID property
in the domain. This is useful especially in this case because I want run the
same code changing only the id-generator-strategy, and the ID-Type, in the
mapping.*
http://fabiomaulo.blogspot.com/2009/02/nh210-generators-behavior-explained.html

2011/2/16 Juan Cuello <[email protected]>

> Fabio,
>
> En un link que has dado de ConfORM, se hace el mapeo sin tener una
> propiedad ID en la entidad. Y se lanza una pregunta al vuelo que no
> tengo respuesta:
>
> ¿Cómo se realizaría la comparación entre objetos que no son transient?
> ¿Sólo por sus propiedades? ¿Y cómo puedo saber en tiempo de ejecución
> si es transient o no?
>
> Gracias
>
> On 12 feb, 14:40, Fabio Maulo <[email protected]> wrote:
> > Si se implementa la traducción en español de este applierhttp://
> code.google.com/p/codeconform/source/browse/ConfOrm/ConfOrm.Sh...
> >
> > <http://code.google.com/p/codeconform/source/browse/ConfOrm/ConfOrm.Sh..
> .>Tambien
> > podes hacer que la propiedad "Fecha" termine en una column de tipo DATE.
> > En tu caso, ya que se trata de una propiedad de la clase Extraccion, no
> creo
> > sea apropiado... tal vez el nombre mas apropiado para la propiedad sea:
> > Momento
> > ;-)
> >
> > ConfORM ayuda a los responsable de proyectos a que todo el equipo siga
> > patrones de implementacción bien determinados (que pueden ser los mios,
> lo
> > de Carlos o lo que definan ustedes).
> >
> > Are you ConfORM ?
> >
> > 2011/2/12 Fabio Maulo <[email protected]>
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > > mapper.Customize<Cliente>(c => c.Property(p => p.Nombre, m =>
> m.Unique(true)));
> >
> > > mapper.Customize<Cliente>(c => c.Property(p => p.Nombre, m =>
> m.NotNullable(true)));
> >
> > > podes escribirla en una sola linea ya que el concern es lo mismo (DDL
> > > customization).
> > > Igualmente yo no lo haría de esa forma ya que lo que realmente estas
> > > expresando es que la propiedad Nombre del cliente representa la que se
> > > domina : Natural Id (el identificador que tiene una entidad en su
> entorno
> > > natural)
> > > O sea:
> > > orm.TablePerClass(new[] { typeof(Cliente), typeof(Cuenta),
> > > typeof(Extraccion) });
> >
> > > orm.VersionProperty<Cuenta>(c => c.Version);
> > >  orm.NaturalId<Cliente>(cliente=> cliente.Nombre);
> >
> > > orm.Cascade<Cliente, Cuenta>(Cascade.All);
> >
> > > mapper.Customize<Cliente>(c => c.Property(p => p.Nombre, m =>
> > > m.NotNullable(true)));
> >
> > > Que, aplicando los patterns definido en
> > >https://bitbucket.org/fabiomaulo/nhmysticpara MSSQL2008, en XML es:
> >
> > >   <class name="Cliente" table="Clientes">
> > >     <id type="Guid">
> > >       <generator class="guid.comb" />
> > >     </id>
> > >     <natural-id>
> > >       <property name="Nombre" not-null="true" />
> > >     </natural-id>
> > >     <many-to-one name="Cuenta" column="CuentaId" cascade="all" />
> > >     <bag name="Extracciones" access="field.camelcase-underscore"
> > > inverse="true"
> > > cascade="all,delete-orphan">
> > >       <key column="ClienteId" on-delete="cascade" />
> > >       <one-to-many class="Extraccion" />
> > >     </bag>
> > >   </class>
> >
> > >   <class name="Cuenta" table="Cuentas">
> > >     <id type="Guid">
> > >       <generator class="guid.comb" />
> > >     </id>
> > >     <version name="Version" />
> > >     <property name="Saldo" />
> > >   </class>
> >
> > >   <class name="Extraccion" table="Extracciones">
> > >     <id type="Guid">
> > >       <generator class="guid.comb" />
> > >     </id>
> > >     <many-to-one name="Cliente" column="ClienteId" />
> > >     <property name="Fecha" type="DateTime2" />
> > >     <property name="Importe" />
> > >   </class>
> >
> > > 2011/2/12 [email protected] <[email protected]>
> >
> > > Pienso que usar ConfOrm es una buena opción, aun para quienes están
> > >> empezando y hasta quizás "sobre todo para quienes están empezando",
> > >> ¿por qué?
> >
> > >> Porque con ConfOrm van a aprender a escribir mappings como si
> > >> estuvieran haciendo pair programming con gente de mucha experiencia en
> > >> nhibernate.
> >
> > >> decirle a ConfOrm "mapeame estas clases" es como preguntarle al Tano
> > >> "ma come scrivere un mapping di queste classi"
> >
> > >> A partir de los mappings que genera ConfOrm podemos generar los xml,
> > >> si bien esto no es necesario para usar ConfOrm, si podemos ver que nos
> > >> generó.
> >
> > >> Recién escribí un blog-post sobre algo que me llamó la atención, hace
> > >> un tiempo ya que uso nhibernate y sigo aprendiendo cosas nuevas, esta
> > >> vez me la enseñó ConfOrm:http://goo.gl/5N4wK
> >
> > >> por la mitad del blog-post está el código que escribe los mappings en
> > >> xml a partir de lo generado por ConfOrm (por si a alguien le
> > >> interesa).
> >
> > >> Si ademas estamos generando el schema de la db desde nhibernate (con
> > >> SchemaExport) es casi transparente el mantenimiento de la db durante
> > >> el desarrollo.
> >
> > >> Otro tema es si la db no es parte de nuestro desarrollo ya sea legacy
> > >> o prediseñada (e inmutable).
> >
> > >> saludos.
> > >> nelo.
> >
> > >> 2011/2/11 NFreex <[email protected]>:
> >
> > >> > Por mi parte hace menos de un mes comence con Nhibernate la version
> > >> > 3.0.0...
> > >> > Gracia a mi  compañero del trabajo, comenzamos con algo nuevo...
> para
> > >> > mi muy dificil de comprender pero me e estado adaptando a esta nueva
> > >> > herramienta.
> >
> > >> > Nos adentramos a el a traves de la configuracion del mapeo a traves
> de
> > >> > xml les cuento que el comiezo era algo complicado aunque aun no
> domine
> > >> > por completo lo que se puede hacer dentro del xml por lo demas ya
> > >> > comprendo ciertas cosas, a medida que pasa el tiempo, me voy
> adaptando
> > >> > al xml.
> >
> > >> > Mi recomendacion es que que si tienen un proyecto de menos de 25 a
> 30
> > >> > clases pueden trabajarlo con xml..
> > >> > nosotros tenemos alrededor de 22 clases y creciendo.
> > >> > Siempre con cuidado de no cometer algun analisis  mal empleado y
> > >> > hechar varias clases hacia atras o mejor dicho reconfigurar pero ya
> > >> > teniendo lo que se debe cambiar ya seria un paseo...
> >
> > >> > Ya cuando tengamos proyecto mas grandes de mayor capacidad creo que
> > >> > podremos emigrar a algo como Conform pero por el momento  conozcamos
> a
> > >> > NHibernate a fondo desde los comienzos del xml...
> >
> > >> > Los invitos a aquellso que no esten familiarizados con el mapping en
> > >> > xml, a que no olviden las costumbres antiguas donde todo era a
> pulmon,
> > >> > algo asi como el Viejo MS-DOS donde para entrar a una carpeta habia
> > >> > que escribir cd nombredecarpeta  y ahora con windows solo hay que
> dar
> > >> > clic.  Aveses el clic no nos demuestra que hay por debajo de todo
> > >> > esto ...
> >
> > >> > Por eso es mejor conocer al enemigo desde sus entrañas para luego
> > >> > saber como enfrentarlo visualmente.
> > >> > Saludos desde  Panama
> >
> > >> > --
> > >> > 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
> >
> > --
> > 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
>



-- 
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

Responder a