.net ActiveRecord、NHibernate和PostgreSQL
我有点被困在这里,不能让它工作。看起来很简单,但我一定是做错了什么 我有一个简单的类来测试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
[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做其他的一切。