Mapenado Entidades

75 views
Skip to first unread message

Pedro Avila

unread,
May 29, 2014, 12:02:29 PM5/29/14
to nhibernat...@googlegroups.com
Hola hace poco hice un mantenimiento con  NHibernate primero fue un mantenimieto de una tabla luego de otra, pero cuando hice el mantenimiento de la segunda tabla me di cuenta que hacia el mapping a las dos entidades creadas, si tuviera un desarrollo real donde se trabaja con muchas entidades estaría mapenado todas las entidades?

Este es mi código.
namespace Prueba.AccesoDatos
{
    public class FluentSesionFactory
    {
        private static string ConnectionString = "Data Source=.;Initial Catalog=Prueba;User ID=sa;Password=lim@01";
        private static ISessionFactory session;

        public static ISessionFactory CrearSession()
        {
            if (session != null)
                return session;

            IPersistenceConfigurer configDB = MsSqlConfiguration.MsSql2012.ConnectionString(ConnectionString);
            var configMap =
                Fluently.Configure().Database(configDB).Mappings(
                    c => c.FluentMappings.AddFromAssemblyOf<Mapping.PersonalMap>());

            session = configMap.BuildSessionFactory();

            return session;
        }

        public static ISession AbrirSession()
        {
            return CrearSession().OpenSession();
        }

    }
}

Estos son los mapping

namespace Prueba.AccesoDatos.Mapping
{
    public class PersonalMap : ClassMap<PersonalEntity>
    {
        public PersonalMap()
        {
            Id(c => c.PersonalId);
            Map(c => c.Nombre);
            Map(c => c.Direccion);
            Map(c => c.Telefono);
            Table("Personal");
        }

    }
}

namespace Prueba.AccesoDatos.Mapeo
{
    public class ProductoMap : ClassMap<ProductoEntity>
    {
        public ProductoMap()
        {
            Id(c => c.ProductoId);
            Map(c => c.Descripcion);
            Map(c => c.Precio);
            Table("Productos");
        }
    }
}

Creo yo que en un desarrollo verdadero estar mapeando todas las entidades que tienen muchas propiedades haga lento el rendimiento.



Carlos Peix

unread,
May 29, 2014, 2:17:21 PM5/29/14
to nhibernate-hispano
Hola Pedro,

Creo que no entiendo tu pregunta pero, en caso de que la entienda, la respuesta seria que si, debes mapear todas las entidades que desees persistir.

Otra opcion es utilizar ConfOrm

----------------------------------
Carlos Peix


--
--
Para escribir al Grupo, hágalo a esta dirección: NHibernat...@googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
---
Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a nhibernate-hisp...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Juan José Montes de Oca Arbós

unread,
May 29, 2014, 3:07:50 PM5/29/14
to nhibernat...@googlegroups.com
Hola Pedro, si la estructura de datos es diferente a tu modelo de objetos, tenés que mapear y especificar todo como lo estás haciendo. Sino, podés dejar que NH tome los valores por defecto.

Por ejemplo, en ProductoMap no sería necesario que hagas un Map de Descripción y de Precio, ya que esos van a ser los nombres de los campos de la tabla Productos ¿verdad? Solo necesitás especificar las cosas puntuales, por ejemplo, tu tabla y tu clase tienen diferentes nombres (ProductoEntity y Productos).

Igualmente, si especificas o no el mapeo, NH lo hace. Desde mi punto de vista, el rendimiento de la aplicación no va a variar mucho.

Saludos Y ÉXITOS!!


--
Juan José Montes de Oca Arbós.

===========================
Web personal: http://juanjose.montesdeocaarbos.com.ar/blog/


Pedro Avila

unread,
May 29, 2014, 6:20:58 PM5/29/14
to nhibernat...@googlegroups.com
ConfOrm  para que sirve para mapear las entidades?


Has recibido este mensaje porque estás suscrito a un tema del grupo "NHibernate-Hispano" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/nhibernate-hispano/YxDapZ6xX4w/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a nhibernate-hisp...@googlegroups.com.

Pedro Avila

unread,
May 29, 2014, 6:21:38 PM5/29/14
to nhibernat...@googlegroups.com
Conoces de alguna aplicación para mapear o algo como ngen 


Has recibido este mensaje porque estás suscrito a un tema del grupo "NHibernate-Hispano" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/nhibernate-hispano/YxDapZ6xX4w/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a nhibernate-hisp...@googlegroups.com.

Juan José Montes de Oca Arbós

unread,
May 29, 2014, 8:55:40 PM5/29/14
to nhibernat...@googlegroups.com
Hola Pedro, no entiendo la pregunta. ¿Qué es lo que estás necesitando?

Te pregunto esto porque lo que vos estás haciendo en tu ejemplo es mapear dos entidades.

Utilizando NHibernate podés mapear las entidades ya sea por archivos de configuración o por código (creo que a partir de la versión 3 en adelante es una funcionalidad propia de NH, y previamente se hacía usando ConfORM)




--
Juan José Montes de Oca Arbós.

===========================
Web personal: http://juanjose.montesdeocaarbos.com.ar/blog/


Carlos Peix

unread,
May 29, 2014, 9:02:01 PM5/29/14
to nhibernate-hispano
ConfOrm es un configurador de mapeos para NH, algo parecido a FluenNH

----------------------------------
Carlos Peix

Luciano

unread,
May 30, 2014, 9:47:08 AM5/30/14
to nhibernat...@googlegroups.com
Si pedro, basándose en el ejemplo que publicaste, tenes que mapear Entidad por Entidad.

Lo que tenes para Fluent es AutoMapping.

Pedro Avila

unread,
May 30, 2014, 3:29:55 PM5/30/14
to nhibernat...@googlegroups.com
Hola Carlos soy nuevo usando NHibernate me recomendaron Fluent NHibernate para no estar mapeando en xml, te hago una pregunta ConfORM me hace el mapping en xml por lo que estoy viendo o me equivoco????

Pedro Avila

unread,
May 30, 2014, 3:31:37 PM5/30/14
to nhibernat...@googlegroups.com
Estoy viendo el video de Fabio Maulo


El 29 de mayo de 2014, 13:16, Carlos Peix <carlo...@gmail.com> escribió:
Has recibido este mensaje porque estás suscrito a un tema del grupo "NHibernate-Hispano" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/nhibernate-hispano/YxDapZ6xX4w/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a nhibernate-hisp...@googlegroups.com.

Gustavo Fuentes

unread,
May 30, 2014, 3:32:14 PM5/30/14
to nhibernat...@googlegroups.com
Pedro,

En http://fabiomaulo.blogspot.com.ar/search/label/ConfORM hay bastante detalle de como utilizar ConfORM.

GF
{
   me: 'Gustavo Fuentes',
   mobile: '+54 9 11 69674021'
}
Reply all
Reply to author
Forward
0 new messages