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
