Hola Bruno,

Si probás exactamente esto en .Net y Windows, y te funciona, puede que el
error provenga del Mono, y es allí donde debes pedir ayuda.

Estás seguro que estás usando ese código ? Estoy viendo en tu StackTrace
esto: NHibernate.Tool.hbm2ddl, y también en tu namespace, que sirve para
exportar el DDL, pero no lo estoy viendo en tu código ni configuración.

Saludos

2011/2/10 Bruno Reato <[email protected]>

> Hola a todos:
> Estoy probando la versión 3 de nhibernate con Postgresql y estoy teniendo
> algunos problemas para hacerlo funcionar. Mi configuración es la siguiente:
>
> S.O.: Ubuntu 10.10
> Versión de Mono: 2.6.7
> NHibernate: 3.0
> Postgresql: 9.0
>
> Hice una pequeña aplicación de consola con 1 entidad llamada Product:
>
> Product.cs
>
> using System;
>
> namespace PruebaNhibernate.domain
> {
>    [Serializable]
>    public class Product
>    {
>        public Product ()
>        {
>        }
>
>        public virtual int Id { get; set; }
>        public virtual string Name { get; set; }
>        public virtual string Category { get; set; }
>        public virtual bool Discontinued { get; set; }
>    }
> }
>
> Y el archivo de mapeo:
>
> Product.hbm.xml
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>                   assembly="PruebaNhibernate"
>                   namespace="PruebaNhibernate.domain">
>
> <class name="Product">
> <id name="Id">
> <generator class="sequence">
> <param name="sequence">Gen_Product</param>
> </generator>
> </id>
> <property name="Name" />
> <property name="Category" />
> <property name="Discontinued" />
> </class>
>
> </hibernate-mapping>
>
> Luego tengo el archivo de configuración de nhibernate:
>
> hibernate.cfg.xml
>
> <?xml version="1.0" encoding="utf-8" ?>
> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
> <session-factory name="NHibernate.Test">
> <property
> name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
> <property
> name="connection.driver_class">NHibernate.Driver.NpgsqlDriver</property>
> <property
> name="connection.connection_string">Server=localhost;Database=nhibernate;User
> ID=xxx;Password=xxx;</property>
> <property name="dialect">NHibernate.Dialect.PostgreSQLDialect</property>
> <property
> name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory,
> NHibernate.ByteCode.Castle</property>
> </session-factory>
> </hibernate-configuration>
>
> Y el archivo de la aplicación consola:
>
> Main.cs
>
> using System;
> using NHibernate.Cfg;
> using PruebaNhibernate.domain;
> using NHibernate;
> using NHibernate.Tool.hbm2ddl;
>
> namespace PruebaNhibernate
> {
>    class MainClass
>    {
>        public static void Main (string[] args)
>        {
>            var cfg = new Configuration();
>            try{
>                cfg.Configure("hibernate.cfg.xml");
>                cfg.AddXmlFile("./mappings/Product.hbm.xml");
>                ISessionFactory sessionFactory = cfg.BuildSessionFactory();
>                ISession session = sessionFactory.OpenSession();
>
>                session.Close();
>            } catch (Exception ex){
>                Console.WriteLine(ex.StackTrace.ToString());
>            }
>        }
>    }
> }
>
> Cuando ejecuto la aplicación me dá un error al ejecutar BuildSessionFactory
> con el siguiente mensaje:
>
> Cannot cast from source type to destination type.
>
> Y el StackTrace es:
>
>  at
> NHibernate.Tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.Prepare
> () [0x00000] in <filename unknown>:0
>  at NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.GetReservedWords
> (NHibernate.Dialect.Dialect dialect, IConnectionHelper connectionHelper)
> [0x00000] in <filename unknown>:0
>  at NHibernate.Tool.hbm2ddl.SchemaMetadataUpdater.Update (ISessionFactory
> sessionFactory) [0x00000] in <filename unknown>:0
>  at NHibernate.Impl.SessionFactoryImpl..ctor (NHibernate.Cfg.Configuration
> cfg, IMapping mapping, NHibernate.Cfg.Settings settings,
> NHibernate.Event.EventListeners listeners) [0x00000] in <filename unknown>:0
>  at NHibernate.Cfg.Configuration.BuildSessionFactory () [0x00000] in
> <filename unknown>:0
>  at PruebaNhibernate.MainClass.Main (System.String[] args) [0x0001e] in
> /home/bruno/Projects/PruebaNhibernate/Main.cs:18
>
>
> Espero que me puedan ayudar.
>
> Saludos.
>
> Bruno.
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano




-- 
Dario Quintana

-- 
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