Hola,

Bien que resolviste tu problema.

   1. Ten en cuenta que si en lugar de exponer un problema en concreto
   colocas una ejemplificacion, se espera que esta sea consistente de manera
   que si el problema se resuelve en la ejemplificacion tambien esta solucion
   se pueda replicar en el problema especifico, de lo contrario entonces es
   preferible exponer directamente el problema.
   2. En cuanto a tu problema de relacion m-to-m, el codigo y el mapeo que
   te coloque (que al parecer no lo verificaste), soluciona el problema que
   describes pues te va a generar la BD con las restricciones que tienes pero
   con el beneficio de tener un dominio orientado a objetos.
   3. No utilizo Fluent pero te puedo asegurar que el mapeo que realize en
   archivos xml se puede realizar igualmente en Fluent, lo unico extranio es el
   composite-element, pero este
link<http://stackoverflow.com/questions/2960493/fluent-nhibernate-how-does-one-translate-composite-element-tag-to-fnh>
muestra
   como se  hace con fluent.
   4. Con respecto a tu discrepancia, creo que tu justificacion me da la
   razon, en objetos no no existen el concepto de relaciones m-to-m ni llaves
   foraneas; en objeto se manejan relaciones de asociaciones, agregaciones y
   composiciones (uni-bidi) con unos valores de
multiplicidad<http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/>
   .


Saludos,
Nestor Andres Rodriguez

2011/9/6 Dennis Alba <[email protected]>

> muchas gracias a todos por sus respuestas, ya resolvi con HQL.
> Respecto a las opiniones de Nestor, recuerda amigo mio que en el post
> anterior explicaba que lo que ponia no era mas que un ejemplo para que
> pudieran entender lo que neecsitaba, pero que la realidad era mas
> compleja. Estoy pensando en tablas? si un poco y el problema esta en
> que una e las tareas que tengo es crear una estrucutura de clases tal
> que cuando mapee se me genere una BD exctamente igual a una ya
> existente. Por tal motivo cuando creo las clases y sus mapeos si debo
> pensar en como hacerla para cumplir dicho objetivo. Ademas recuerda
> que te explique que realmente tabajaba con FluentNHibernate y que esta
> herramienta no posee todas las posibilidaes que brinda NHibernate con
> la mapeo en XML por tanto debo adaptarme a cambios como usar una clase
> que simule una tabla que sea la relacion m-n entre dos o mas entidades
> en vez de usar el metodo HasManytoMany. Respecto a que en POO no
> existe las relaciones m-n debo discrepar  de hecho, en lo que en BD
> existen solo tres tipos de relaciones:
> 1) 1-1
> 2) 1-m
> 3) m-n
>
> en POO existen mas
> 1-      Uno a uno
> •       Unidireccional
> •       Bidireccional
> 2-      Uno a muchos
> •       Unidireccional
> •       Bidireccional
> 3-      Muchos a uno
> •       Unidireccional
> •       Bidireccional
> 4-      Muchos a muchos
> •       Unidireccional
> •       Bidireccional
> donde el Bidirecional del 2 y el 3 es el mismo por lo que tenemos un
> total de 7 tipos de relaciones en POO, que por supuesto, estas 7 se
> convierten en las 3 de BD.
> Gracias a todos
>
> El 05/09/11, Carlos Peix <[email protected]> escribió:
> > Creo que te va a costar muchisimo usar NH mientras sigas pensando tanto
> > (tantisimo) en tablas. Casi me animaria a decir que puede resultarme mas
> > facil persistir manualmente con ADO.NET y stored procedures y/o SQL
> >
> > De todas maneras, sugiero que pruebes las sugerencias de Nestor.
> >
> > ----------------------------------
> > Carlos Peix
> >
> > 2011/9/5 Dennis Alba <[email protected]>
> >
> >> el ejemplo lo tengo puesto en el post que subi anteriormente "Update
> >> con linq de NHibernate "
> >> imagina que tengo 3 clases
> >> CA
> >> int IdA
> >> string NombA
> >>
> >> CB
> >> int IdB
> >> string NombB
> >>
> >> C-AB
> >> CA instA
> >> CB instB
> >> datetime Fecha
> >>
> >> estas son las tres clases, como puedes ver C-AB es una clase que tiene
> >> dos entidades una de CA y otra de CB y no tiene un campo que sea la
> >> llave primaria pues en el mapeo, estas instancias seran FK pero su
> >> combinacion sera PK, osea esta clase creara una tabla que simula una
> >> relacion m-m entre esas dos clases. Pues bien el update que necesito
> >> ahcer es el siguiente
> >> supon que tengo insertadas ya en las tablas los siguientes datos
> >> CA IdA NombA
> >>      1    ariel
> >>      2    maria
> >> CB idB NombB
> >>      1    varon
> >>      2   hembra
> >>
> >> C_AB  instA    instB   Fecha
> >>            1          1       05/09/2011
> >> como puedes ver la informacion en C-AB es que ariel(1 en instA) es
> >> varon(1 en instB)
> >> pero yo quiero actualizar esta tabla y que quede de la siguiente forma:
> >>
> >> C_AB  instA    instB   Fecha
> >>            1          2       05/09/2011
> >> ahora estaria diciendo que ariel(1 en instA) es hembra(2 en instB)
> >> en linq 2 NHiberntae no puedo hacer esto pues el metodo Update que
> >> tiene para que funcione se basa en las llaves primarias, pero es que
> >> presisamente unas de las cosas que quiero modifica es las llaves
> >> primarias, es por ello que necesito programar yo la query. Espero
> >> entiendas el entorno del fenomeno
> >> Gracias
> >>
> >>
> >>
> >> El 05/09/11, Carlos Peix <[email protected]> escribió:
> >> > Que tipo de update querrias hacer?
> >> >
> >> > Nunca me he tenido esta necesidad, con un ORM. Podrias dar un ejemplo?
> >> >
> >> > ----------------------------------
> >> > Carlos Peix
> >> >
> >> > 2011/9/5 Banzai <[email protected]>
> >> >
> >> >> Saludos tropa:
> >> >> Dado que no he podido encontrar la forma en que por "linq 2
> >> >> NHibernate" crear un UPDATE no me qeda mas remedio que hacer esta
> >> >> consulta por HQL para seguir garantizando que estas operaciones sean
> >> >> independientes del SGBD. Por tal motivo la pregunta es la siguiente.
> >> >> Sabe alguien como se declara una consulta HQL (Tipo UPDATE) y a quien
> >> >> se debe llamar para que implemente y obtenga el resultado de dicha
> >> >> consulta??
> >> >> Muchas gracias a todos
> >> >>
> >> >> --
> >> >> 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
> >>
> >> --
> >> 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
>
> --
> 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