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