... porque tienes <key column="CodigoElementoAsociado"/> y ademas WHERE="CodigoElementoAsociado = CodigoGuidEpisodio" ? No entiendo. Porque haces un filtro por la llave foranea pero con un atributo de la tabla Padre ? Normalmente el mecanismo de filtrado es a traves de la llave primaria de la tabla padre... Me perdi ... Saludos 2012/10/10 mouthbow <[email protected]>
> Hola de nuevo, > > He probado lo que comentas pero sigo teniendo un ultimo problema. > A la hora de definir la clausula where no se como referenciar a la Clase > Padre, la vista por ejemplo: > > <id name="CodigoCabeceraFactura" column="[CodigoCabeceraFactura]" > type="System.Guid"><generator class="assigned"/></id> > <property name="CodigoCentro" column="[CodigoCentro]" > access="field.pascalcase-underscore" not-null="true" type="System.Guid"/> > <property name="CodigoEpisodio" column="[CodigoEpisodio]" > access="field.pascalcase-underscore" not-null="true" type="System.Int32"/> > <property name="CodigoFactura" column="[CodigoFactura]" > access="field.pascalcase-underscore" not-null="false" type="System.String"/> > <property name="CodigoGuidEpisodio" column="[CodigoGuidEpisodio]" > access="field.pascalcase-underscore" not-null="true" type="System.Guid"/> > <property name="ContadorCabecerasEpisodio" > column="[ContadorCabecerasEpisodio]" access="field.pascalcase-underscore" > not-null="true" type="System.Byte"/> > <property name="FechaFactura" column="[FechaFactura]" > access="field.pascalcase-underscore" not-null="false" > type="System.DateTime"/> > > <set name="NotasEpisodioList" table="MensajesItems" > where="CodigoElementoAsociado = CodigoGuidEpisodio"> > <key column="CodigoElementoAsociado"/> > > <one-to-many class="GIOFACT_DAL.Entity.MensajesItems, GIOFACT_DAL"/> > </set> > > > Esta es la linea: > where="CodigoElementoAsociado = CodigoGuidEpisodio"> > > Lo he probado tal y como está y así: > > where="thisCodigoElementoAsociado = this.CodigoGuidEpisodio"> > > Pero no me resuelve la propiedad CodigoGuidEpisodio y salta excepción. > > Se te ocurre como hacerlo? > > Gracias de nuevo. ;-) > > El miércoles, 10 de octubre de 2012 16:17:37 UTC+2, mouthbow escribió: > >> Hola, >> >> El tema de juntarlo todo en una tabla fue un paso añadido. Inicialmente >> lo tenía todo por separado pero me parecía poco lógico teniendo en cuenta >> que eran los mismos campos. >> El ejemplo que pones de "Es como tener una tabla de Nombres o una table >> de Descripciones" no me termina de convencer dado entiendo que una entidad >> solo tiene un nombre o una descripción mientras que Notas puede tener >> muchísimas. Además que dichas notas no son simplemente notas sino que >> tienen muchas propiedades y funciones asociadas para filtrado por grupos de >> usuarios, fechas, etc... >> >> En cualquier caso voy a lo importante: >> Muchas gracias por comentarme la opción de Where, aún no he podido >> probarlo pero desde luego que pinta bien. >> Cuando lo haya hecho lo comento por aquí. >> >> Un saludo. >> >> El martes, 9 de octubre de 2012 18:08:43 UTC+2, Andres Rodriguez escribió: >>> >>> Hola mouthbow, >>> >>> Realmente no fue una buena decision haber centralizado (acoplado) las >>> notas de diferentes entidades en una sola tabla. Las notas son simplemente >>> notas y pertenecen a cada entidad. Es como tener una tabla de Nombres, o >>> una tabla de Descripciones. Tal vez aplique en tu dominio, no se, pero es >>> una solucion que hay que pensarla dos veces. >>> >>> Para tu caso, prueba en el <SET> utilizando un >>> WHERE<http://nhforge.org/doc/nh/en/index.html#collections-mapping>= >>> "codigo_elemento_asociado = 'codigo proveedor'" en cada una de las >>> entidades donde mapeas las notas. Alli debes colocar un SQL arbitrario el >>> cual te va a servir para traerte solo un subconjunto de las Notas que >>> deseas basado en el codigo_elemento_asociado. Espero te funcione. >>> >>> Saludos, >>> Nestor Andres Rodriguez >>> >>> 2012/10/9 mouthbow <[email protected]> >>> >>>> Ok muchas gracias por tu respuesta. >>>> >>>> Seguiré investigando. >>>> >>>> Un saludo. >>>> >>>> El martes, 9 de octubre de 2012 11:45:49 UTC+2, Carlos Peix escribió: >>>>> >>>>> Hola mouthbow, >>>>> >>>>> Yo no conozco manera de realizar ese mapeo (lo cual no significa que >>>>> no exista). >>>>> >>>>> Yo he resuelto ese tipo de situaciones con una clase base para los >>>>> items de la coleccion que tenga una referencia al documento >>>>> (backreference). >>>>> >>>>> ------------------------------****---- >>>>> Carlos Peix >>>>> >>>>> 2012/10/9 mouthbow <[email protected]> >>>>> >>>>> Hola Carlos, >>>>>> >>>>>> Gracias por tu respuesta. >>>>>> Lamentablemente la opción del dataset no es válida para mí. Como >>>>>> comento en otra entrada de este mismo post, la aplicación ya existe y >>>>>> utilizo este modelo en múltiples pantallas. >>>>>> Creo que podría ser que no me hubiera explicado correctamente. >>>>>> Considero que no necesito polimorfismo, ni clase base (aunque si que la >>>>>> tengo) ni nada de todo eso. >>>>>> Olvidemos por un momento el tema de la vista, creo que la pregunta se >>>>>> puede responder sin esta condición. >>>>>> >>>>>> EntidadCliente: Id (CodigoCliente), Nombre >>>>>> EntidadProveedor: Id (CodigoProveedor), Nombre >>>>>> EntidadEmpresa: Id (CodigoEmpresa), Nombre >>>>>> EntidadFactura: Id (CodigoFactura), CodigoCliente, CodigoProveedor, >>>>>> CodigoEmpresa >>>>>> EntidadNotasElementos: Id (CodigoNota), CodigoElementoAsociado, Nota >>>>>> >>>>>> Quiero un mapping dentro del mapping de EntidadFactura que haga esto: >>>>>> >>>>>> <set name="NotasClienteList" cascade="none" inverse="true" >>>>>> lazy="false" access="field.pascalcase-**under**score"> >>>>>> <key> >>>>>> <column name="CodigoElementoAsociado" *SOURCECOLUMNNAME="CodigoClien >>>>>> te"* /> >>>>>> </key> >>>>>> <one-to-many class="Entity.NotasElementos, GIOFACT_DAL"/> >>>>>> </set> >>>>>> >>>>>> <set name="NotasProveedorList" cascade="none" inverse="true" >>>>>> lazy="false" access="field.pascalcase-**under**score"> >>>>>> <key> >>>>>> <column name="CodigoElementoAsociado" *SOURCECOLUMNNAME=" >>>>>> CodigoProveedor"* /> >>>>>> </key> >>>>>> <one-to-many class="Entity.NotasElementos, GIOFACT_DAL"/> >>>>>> </set> >>>>>> >>>>>> <set name="NotasEmpresaList" cascade="none" inverse="true" >>>>>> lazy="false" access="field.pascalcase-**under**score"> >>>>>> <key> >>>>>> <column name="CodigoElementoAsociado" *SOURCECOLUMNNAME="CodigoProve >>>>>> edor"* /> >>>>>> </key> >>>>>> <one-to-many class="Entity.NotasElementos, GIOFACT_DAL"/> >>>>>> </set> >>>>>> >>>>>> >>>>>> Por favor, esto es posible, sí o no? Y si es que sí, como? >>>>>> >>>>>> Muchísimas gracias de nuevo. >>>>>> >>>>>> El martes, 9 de octubre de 2012 04:00:47 UTC+2, Carlos Peix escribió: >>>>>>> >>>>>>> Hola mouthbow, >>>>>>> >>>>>>> Creo que estas enfrentando dos problemas distintos y una sola >>>>>>> solucion no bastara. >>>>>>> >>>>>>> Sugiero que programes una vista o stored procedure que devuelva la >>>>>>> informacion que necesitas y no la mapees a ninguna entidad de >>>>>>> NHibernate, >>>>>>> simplemente utiliza un dataset. Creo que puede hacerse con NH un query >>>>>>> que >>>>>>> recibas en un objeto cualquiera, aunque no estoy familiarizado con esta >>>>>>> tecnica. >>>>>>> >>>>>>> Hasta aqui sin preocuparte del mundo de objetos. >>>>>>> >>>>>>> Luego, debes resolver el problema de estas relaciones en el mundo de >>>>>>> los objetos y, una vez que lo tengas resuelto en ese mundo, ver como lo >>>>>>> mapeas con la base de datos. Veras que es mucho mas simple. Para eso yo >>>>>>> he >>>>>>> usado polimorfismo implcicito o explicito. Hay ejemplos en la >>>>>>> documentacion >>>>>>> de NH. >>>>>>> >>>>>>> Un saludo >>>>>>> >>>>>>> ------------------------------******---- >>>>>>> Carlos Peix >>>>>>> >>>>>>> 2012/10/8 mouthbow <[email protected]> >>>>>>> >>>>>>> Buenos días, >>>>>>>> >>>>>>>> Gracias por tus consejos. Reconozco que el modelo está basado en la >>>>>>>> base de datos. Es decir, primero pienso que información voy a guardar, >>>>>>>> luego diseño las tablas y finalmente hago los mappings. >>>>>>>> La aplicación la empecé en enero de 2010 y lleva mas de dos años >>>>>>>> implantada y funcionando muy bien. Digo esto no para echarme flores >>>>>>>> (nada >>>>>>>> mas lejos de la realidad) sino para dejar patente que aunque se que >>>>>>>> hago un >>>>>>>> uso muy limitado de Nhibernate, considero que el trabajo que nos >>>>>>>> ahorra es >>>>>>>> gigante. Digo esto también para comentar que dada la situación no >>>>>>>> podría >>>>>>>> empezar desde cero con el modelo de datos (cosa que por otro lado me >>>>>>>> encantaría porque hace tiempo que se que tiene lagunas). >>>>>>>> Otra cosa que me gustaría añadir es que he buscado en diferentes >>>>>>>> ocasiones algún profesor de Nhibernate que quiera darme unas clases >>>>>>>> para >>>>>>>> mejorar y aclarar conceptos pero nunca he encontrado a nadie en España >>>>>>>> que >>>>>>>> pueda desplazarse a Baleares (cobrando claro...). ¿sabéis de alguno? >>>>>>>> >>>>>>>> Bueno, y dicho todo esto voy a intentar describir mejor el problema >>>>>>>> / situación: >>>>>>>> >>>>>>>> La aplicación como es lógico tiene entidades separadas (con tabla >>>>>>>> asociada en base de datos): >>>>>>>> -Clientes: Id, Nombre >>>>>>>> -Proveedores: Id, Nombre >>>>>>>> -Facturas: Id, CodigoCliente,..... >>>>>>>> -NotasElementos: Id, CodigoElementoAsociado,Nota >>>>>>>> -DocumentosElementos: Id, CodigoElementoAsociado, PathDocumento >>>>>>>> >>>>>>>> Todos los Ids son del tipo GUID lo que me permite almacenarlos >>>>>>>> donde me interese. >>>>>>>> Por esa razón el CodigoElementoAsociado de las tablas >>>>>>>> NotasElementos o DocumentosElementos pueden estar asociado a un >>>>>>>> Cliente, a >>>>>>>> un Proveedor o a lo que sea. >>>>>>>> Generalmente no me interesa mirar "A quien pertenece este mensaje" >>>>>>>> o "a quien pertenece este documento". >>>>>>>> Mas bien lo que hago es: Dado este cliente muestrame sus documentos >>>>>>>> o sus notas lo cual lo hago a través del ID. >>>>>>>> Hasta ahora lo hago de forma separada mediante una query y me va >>>>>>>> bien. >>>>>>>> Las Views las uso para sacar listados en pantalla mediante Grids. >>>>>>>> El proyecto está desarrollado en WPF y si usara clases de entidades (o >>>>>>>> sea >>>>>>>> sin usar vistas) me vería obligado a usar Converters continuamente para >>>>>>>> mostrar la información tal y como deseo. por ejemplo para traducir un >>>>>>>> CodigoCliente en su Nombre correspondiente. >>>>>>>> Entiendo que otro modo (una vez están todas las relaciones y >>>>>>>> mappings correspondientes) es ir saltando en propiedades y >>>>>>>> subpropiedades >>>>>>>> de cada DataItem para acceder desde la Entidad Factura a la Entidad >>>>>>>> Cliente >>>>>>>> y de ahí a su nombre, por ejemplo usando lazy=true. El problema que le >>>>>>>> veo >>>>>>>> a esto es que hay que mantener BindingPaths muy largos y que hay que >>>>>>>> recuperar entidades enteras cuando uno solo quiere el nombre. >>>>>>>> >>>>>>>> Mi problema viene cuando alguien viene y me dice: Sácame todas las >>>>>>>> facturas de clientes que tengan documentos entre FechaA o FechaB o >>>>>>>> Sácame >>>>>>>> todas las Facturas cuyos clientes tengan una nota con el texto >>>>>>>> 'pepito'. >>>>>>>> >>>>>>>> Y con eso llego a la pregunta del principio. >>>>>>>> >>>>>>>> Necesito mapear una lista, set, bag o lo que sea en la vista >>>>>>>> ViewListadoFacturas. En esta Vista la clave primaria es el >>>>>>>> CodigoFactura >>>>>>>> pero yo quiero mapear una Lista (solo lectura) que me devuelva las >>>>>>>> notas >>>>>>>> del CodigoCliente que tiene asignado esa Factura. >>>>>>>> >>>>>>>> Bueno, espero haberme explicado. Perdon por el post tan largo, >>>>>>>> espero que haya sido clarificador y podáis echarme una mano. >>>>>>>> >>>>>>>> Un saludo y muchísimas gracias si has llegado hasta aquí. >>>>>>>> >>>>>>>> >>>>>>>> El lunes, 8 de octubre de 2012 13:46:09 UTC+2, Carlos Peix escribió: >>>>>>>>> >>>>>>>>> Hola mouthbow, >>>>>>>>> >>>>>>>>> Algo que ayuda mucho en las consultas es que nos cuentes como es >>>>>>>>> tu modelo (ademas de los mappings). Parece ser que tu enfoque esta muy >>>>>>>>> orientado a la base de datos, por ejemplo con tu entidad >>>>>>>>> ViewListadoFacturas. >>>>>>>>> >>>>>>>>> Es muy dificil entender (y mucho mas utilizar) un ORM si no >>>>>>>>> dedicas un poco de tiempo a pensar tu modelo. En general los ORMs >>>>>>>>> funciona >>>>>>>>> mucho mejor y es mas facil usarlos, cuando tienes un modelo basados en >>>>>>>>> objetos. >>>>>>>>> >>>>>>>>> Una de las opciones que tienes para resolver este problema es que >>>>>>>>> todos los elementos que relacionas a tu coleccion implementen alguna >>>>>>>>> interfaz o tengan una clase base, lo cual es razonable en un modelo de >>>>>>>>> objetos, caso contrario, como podria manejarlos tu objeto si no >>>>>>>>> tienen nada >>>>>>>>> en comun? >>>>>>>>> >>>>>>>>> Has pensado en eso? >>>>>>>>> >>>>>>>>> ------------------------------********---- >>>>>>>>> Carlos Peix >>>>>>>>> >>>>>>>>> 2012/10/8 mouthbow <[email protected]> >>>>>>>>> >>>>>>>>>> Hola Marcos, >>>>>>>>>> >>>>>>>>>> Ante todo muchísimas gracias por tu respuesta. >>>>>>>>>> >>>>>>>>>> He revisado el código que me mandas y no termino de ver como sabe >>>>>>>>>> NHibernate la columna de origen con la que debe hacer el filtrado de >>>>>>>>>> la >>>>>>>>>> subcoleccion. >>>>>>>>>> Es decir, según esto: >>>>>>>>>> >>>>>>>>>> <set name="NotasElementosList"> >>>>>>>>>> <key column="**CodigoElementoAsociado********" /> >>>>>>>>>> <one-to-many class="NotasElementos" /> >>>>>>>>>> </set> >>>>>>>>>> >>>>>>>>>> Entiendo que ahí dice: defino una coleccion llamada >>>>>>>>>> NotasElementosList que se alimenta de la tabla NotasElementos, y debo >>>>>>>>>> filtrar en esa tabla por el campo CodigoElementoAsociado. >>>>>>>>>> Sin embargo no dice en ningún sitio: Al filtrar por la columna >>>>>>>>>> CodigoElementoAsociado debes utilizar el valor de la columna >>>>>>>>>> CodigoCliente >>>>>>>>>> (y no el id definido que es lo que supongo que haría, no?) >>>>>>>>>> >>>>>>>>>> <set name="NotasElementosList"> >>>>>>>>>> <sourcekey column="**CodigoCliente" /> >>>>>>>>>> <key column="**CodigoElementoAsociado********" /> >>>>>>>>>> <one-to-many class="NotasElementos" /> >>>>>>>>>> </set> >>>>>>>>>> >>>>>>>>>> ¿Esto es posible? >>>>>>>>>> >>>>>>>>>> Gracias de nuevo! >>>>>>>>>> >>>>>>>>>> El sábado, 6 de octubre de 2012 01:05:08 UTC+2, Marcos >>>>>>>>>> Mellibovsky escribió: >>>>>>>>>> >>>>>>>>>>> Hola mouthbow: >>>>>>>>>>> >>>>>>>>>>> Me parece que asi te deberia andar: >>>>>>>>>>> <class name="ViewListadoFacturas"> >>>>>>>>>>> <id type="Guid"> >>>>>>>>>>> <generator class="guid" /> >>>>>>>>>>> </id> >>>>>>>>>>> <property name="CodigoFactura" /> >>>>>>>>>>> <property name="CodigoCliente" /> >>>>>>>>>>> <set name="NotasElementosList"> >>>>>>>>>>> <key column="**CodigoElementoAsociado********" /> >>>>>>>>>>> <one-to-many class="NotasElementos" /> >>>>>>>>>>> </set> >>>>>>>>>>> </class> >>>>>>>>>>> >>>>>>>>>>> public class ViewListadoFacturas >>>>>>>>>>> { >>>>>>>>>>> public virtual Guid CodigoFactura { get; set; } >>>>>>>>>>> >>>>>>>>>>> public virtual Guid CodigoCliente { get; set; } >>>>>>>>>>> >>>>>>>>>>> public virtual ISet<NotasElementos> NotasElementosList { >>>>>>>>>>> get; set; } >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> El jueves, 4 de octubre de 2012 10:54:51 UTC-3, mouthbow >>>>>>>>>>> escribió: >>>>>>>>>>>> >>>>>>>>>>>> Buenas tardes a tod@s! >>>>>>>>>>>> >>>>>>>>>>>> Tengo una pregunta que creo que lo mismo es básica pero no >>>>>>>>>>>> encuentro forma de hacer: >>>>>>>>>>>> >>>>>>>>>>>> Necesito definir un set en un archivo de mapping con unas >>>>>>>>>>>> necesidades especiales. He leído varias páginas pero no encuentro >>>>>>>>>>>> nada. >>>>>>>>>>>> Supongamos que tengo un mapping de una Vista SQL >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> <class name="Namespace.**ViewListadoFac********turas, >>>>>>>>>>>> Assembly" table="ViewListadoFacturas"> >>>>>>>>>>>> >>>>>>>>>>>> <id name="CodigoFactura" column="[CodigoFactura]" >>>>>>>>>>>> type="System.Guid"> >>>>>>>>>>>> <generator class="assigned"/> >>>>>>>>>>>> </id> >>>>>>>>>>>> <property name="CodigoCliente" column="[CodigoCliente]" >>>>>>>>>>>> access="field.pascalcase-**under********score" not-null="true" >>>>>>>>>>>> type="System.Guid"/> >>>>>>>>>>>> >>>>>>>>>>>> </class> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Y supongamos que luego un mapping de una clase como este: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> <class name="Namespace.**NotasElementos********, MyAssembly" >>>>>>>>>>>> table="NotasElementos" > >>>>>>>>>>>> >>>>>>>>>>>> <id name="Id" column="CodigoNota" type="System.Guid"><generator >>>>>>>>>>>> class="guid"/></id> >>>>>>>>>>>> <property name="CodigoElementoAsociado" column="** >>>>>>>>>>>> CodigoElementoAsociado********" access="field.pascalcase-** >>>>>>>>>>>> under********score" not-null="false" type="System.Guid" >>>>>>>>>>>> insert="true" update="true"/> >>>>>>>>>>>> >>>>>>>>>>>> </class> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Donde CodigoCliente de la Vista y CodigoElemento asociado >>>>>>>>>>>> guardan los mismos valores y por tanto podríamos hacer un inner >>>>>>>>>>>> join entre >>>>>>>>>>>> ellos pero se llaman diferente. >>>>>>>>>>>> El nombre es diferente porque en la clase NotasElementos >>>>>>>>>>>> también guardo Notas de Proveedores, Usuarios, etc... De ahí sale >>>>>>>>>>>> el >>>>>>>>>>>> concepto de CodigoElementoAsociado. >>>>>>>>>>>> >>>>>>>>>>>> Al usar Guids evito que dos elementos de clases diferentes >>>>>>>>>>>> compartan ids. >>>>>>>>>>>> >>>>>>>>>>>> La pregunta es: >>>>>>>>>>>> >>>>>>>>>>>> ¿Como puedo mapear las notas del cliente en la vista? Yo >>>>>>>>>>>> necesito hacer algo así: >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> <set name="NotasElementosList" cascade="none" inverse="true" >>>>>>>>>>>> lazy="true" access="field.pascalcase-**under********score"> >>>>>>>>>>>> <Source key> >>>>>>>>>>>> <column name="CodigoCliente" /> >>>>>>>>>>>> </Source key> >>>>>>>>>>>> <Target key> >>>>>>>>>>>> <column name="CodigoElementoAsociado"/**********> >>>>>>>>>>>> </Target key> >>>>>>>>>>>> <one-to-many class="MyNamespace.**NotasElemen********tos, >>>>>>>>>>>> GIOFACT_DAL"/> >>>>>>>>>>>> </set> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ¿Es posible hacer esto? La verdad es que esto solucionaría una >>>>>>>>>>>> gran parte de las necesidades que tengo pendientes. >>>>>>>>>>>> >>>>>>>>>>>> Ni que decir que agradezco enormemente por adelantado cualquier >>>>>>>>>>>> ayuda que pueda recibir. >>>>>>>>>>>> >>>>>>>>>>>> Un saludo. >>>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>> Para escribir al Grupo, hágalo a esta dirección: NHibernat...@** >>>>>>>>>> googlegroups.com >>>>>>>>>> >>>>>>>>>> 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: NHibernat...@** >>>>>>>> googlegroups.com >>>>>>>> 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: NHibernat...@** >>>>>> googlegroups.com >>>>>> 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<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
