Я как бы застрял здесь и не могу заставить это работать. Это кажется таким простым, но я, должно быть, делаю что-то невероятно неправильное.
У меня есть простой класс для тестирования 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=***;" />
спасибо!