我对NHibernate有一些经验,但我是Postgres的新手。我在将字符串列表映射到Postgres text []列时遇到了麻烦。
检索对象时,我得到一个InvalidCastException:无法将类型为'System.String []'的对象强制转换为'System.Byte []'。
我的POCO和类映射是标准的,我没有为list属性指定自定义类型。
public class Developer
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual List<string> Languages { get; set; }
}
public class DeveloperMap : ClassMap<Developer>
{
public DeveloperMap()
{
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Languages);
Table("developers");
}
}
我的配置也非常标准:
Fluently.Configure()
.Database(PostgreSQLConfiguration.Standard
.ConnectionString(c => c
.Host("localhost")
.Port(5432)
.Database("foo")
.Username("foo")
.Password("foo")))
我的具体问题是text []列,但我想使用自定义Postgres数据类型是更广泛的问题。我可以创建一个会话工厂并打开一个会话,所以我的配置看起来没有任何重大问题。