ActiveRecord, NHibernate и PostgreSQL

Я как бы застрял здесь и не могу заставить это работать. Это кажется таким простым, но я, должно быть, делаю что-то невероятно неправильное.

У меня есть простой класс для тестирования NHibernate Active Record и 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 не использует ключевое слово «начальный каталог», но использует «базу данных», например:

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

Спасибо!


person George Silva    schedule 18.06.2011    source источник
comment
Вы можете отправить ответ самому себе и принять его. Также исправьте документы Castle. Если вы читаете это в docs.castleproject.org, вы можете редактировать его, это вики. Если вы читаете его на castleproject.org, вы можете отредактировать его здесь: github.com/castleproject/Castleproject.org-Site   -  person Mauricio Scheffer    schedule 18.06.2011
comment
Я буду! Я добавил билет в Castle, но не понял, что это вики.   -  person George Silva    schedule 21.06.2011
comment
Вики-сайт предназначен только для пользователей, и я не смог зарегистрироваться. Попробую зарегистрироваться на github и подшить документы. Как мне слить? Мне нужно только слияние против GitHub? Мне просто нужен логин на github?   -  person George Silva    schedule 21.06.2011
comment
Вам даже не нужно делать какие-либо проверки с помощью git или запросы на вытягивание. Просто создайте учетную запись github, а затем отредактируйте файл. Все остальное делает Github.   -  person Mauricio Scheffer    schedule 30.01.2012


Ответы (1)


Вам необходимо изменить строку подключения:

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