.net ActiveRecord、NHibernate和PostgreSQL

.net ActiveRecord、NHibernate和PostgreSQL,.net,nhibernate,activerecord,castle-activerecord,npgsql,.net,Nhibernate,Activerecord,Castle Activerecord,Npgsql,我有点被困在这里,不能让它工作。看起来很简单,但我一定是做错了什么 我有一个简单的类来测试NHibernate活动记录和PostgreSQL,看一看 [ActiveRecord] public class Accident:ActiveRecordBase<Accident> { [PrimaryKey(PrimaryKeyType.Sequence)] public int Id { get; set; } [Property] public st

我有点被困在这里,不能让它工作。看起来很简单,但我一定是做错了什么

我有一个简单的类来测试NHibernate活动记录和PostgreSQL,看一看

[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
}
我试图从我的类中创建模式,如下所示:

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能够初始化这个类,但它总是卡在CreateSchema方法中。这是配置文件。专家们有什么建议吗

<?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>
编辑:我想出来了。问题是文档是错误的。PostgreSQL不使用关键字initial catalog,但使用数据库,如下所示:

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();
    }
}

谢谢

您需要更改连接字符串:

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

您需要更改连接字符串:

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

你可以给自己贴一个答案并接受它。另外,请修复城堡文档。如果您在中阅读此内容,您可以对其进行编辑,这是一个wiki。如果你读进去,你可以在这里编辑:我会的!我向Castle添加了一张罚单,但我没有意识到这是一个wiki。wiki仅供用户使用,我无法注册。我将尝试注册到github并修改文档。如何合并?我是否只需要合并GitHub?我只需要一个github登录?你甚至不需要做任何git签出或拉取请求。只需创建一个github帐户,然后编辑该文件。Github做其他的事情。你可以给自己发一个答案并接受它。另外,请修复城堡文档。如果您在中阅读此内容,您可以对其进行编辑,这是一个wiki。如果你读进去,你可以在这里编辑:我会的!我向Castle添加了一张罚单,但我没有意识到这是一个wiki。wiki仅供用户使用,我无法注册。我将尝试注册到github并修改文档。如何合并?我是否只需要合并GitHub?我只需要一个github登录?你甚至不需要做任何git签出或拉取请求。只需创建一个github帐户,然后编辑该文件。Github做其他的一切。