ActiveRecord, NHibernate y PostgreSQL

Estoy un poco atrapado aquí y no puedo hacer que esto funcione. Parece tan simple, pero debo estar haciendo algo increíblemente mal.

Tengo una clase simple para probar NHibernate Active Record y PostgreSQL, eche un vistazo

[ActiveRecord]
public class Accident:ActiveRecordBase<Accident>
{
    [PrimaryKey(PrimaryKeyType.Sequence)]
    public int Id { get; set; }

    [Property]
    public string Address { get; set; }

    [Property]
    public int AddressNumber { get; set; }

    [Property]
    public testAccidentType AccidentType { get; set; }
}

public enum testAccidentType
{
    FRONT,
    BACK,
    SIDE
}

Y estoy tratando de crear el esquema de mi clase, así:

public class Startup
{
    public static void StartActiveRecord()
    {
        XmlConfigurationSource source = new XmlConfigurationSource(@"c:\users\h\documents\visual studio 2010\Projects\TestNHibernate\TestNHibernate\Model\config.xml");
        ActiveRecordStarter.Initialize(source, GetActiveRecordTypes());

        ActiveRecordStarter.CreateSchema();
    }

    public static Type[] GetActiveRecordTypes()
    {
        List<Type> types = new List<Type>()
        {
            typeof(Accident)
        };
        return types.ToArray();
    }
}

ActiveRecord puede inicializar esta clase, pero siempre está bloqueada en el método CreateSchema. Aquí está el archivo de configuración. ¿Algún consejo de los expertos?

<?xml version="1.0" encoding="utf-8" ?>

<activerecord isWeb="false">
  <config>
    <add key="connection.driver_class" value="NHibernate.Driver.NpgsqlDriver" />
    <add key="connection.connection_string" value="Server=localhost;initial catalog=nhiber;User ID=postgres;Password=***;" />
    <add key="connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
    <add key="dialect" value="NHibernate.Dialect.PostgreSQLDialect" />
  </config>
</activerecord>

EDITAR: Descubrí este. el problema es que la documentación es incorrecta. PostgreSQL no usa la palabra clave "catálogo inicial" pero usa "base de datos", así:

    <add key="connection.connection_string" value="Server=localhost;database=nhiber;User ID=postgres;Password=***;" />

¡Gracias!

preguntado el 18 de junio de 11 a las 02:06

Puedes publicar una respuesta para ti mismo y aceptarla. Además, corrija los documentos de Castle. Si lees esto en docs.castleproject.org puedes editarlo, es un wiki. Si lo lees en castleproject.org , puedes editarlo aquí: github.com/castleproject/Castleproject.org-Site -

¡Voy a! Agregué un boleto para Castle, pero no me di cuenta de que era un wiki. -

La wiki es solo para usuarios y no pude registrarme. Intentaré registrarme en github y modificar los documentos. ¿Cómo me fusiono? ¿Solo necesito fusionarme con GitHub? ¿Solo necesito un inicio de sesión de github? -

Ni siquiera necesita hacer ningún pago de git o solicitudes de extracción. Simplemente cree una cuenta de github y luego edite el archivo. Github hace todo lo demás. -

1 Respuestas

Necesita cambiar la cadena de conexión:

<add key="connection.connection_string" value="Server=localhost;database=nhiber;User ID=postgres;Password=***;" />

respondido 21 mar '13, 11:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.