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/nhmystic para 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
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano