Fluent nhibernate 如何使用Fluent Nhibernate映射int数组

Fluent nhibernate 如何使用Fluent Nhibernate映射int数组,fluent-nhibernate,Fluent Nhibernate,我有一节课 Class A { public virtual int[] measurements { get; set; } public virtual int Id { get; private set; } public virtual string Instrument { get; set; } } 如何使用Fluent Hibernate进行映射 谢谢您可以创建.CustomType(typeof(SomeType))并将其映射到逗号分隔的字符串。 这不是我

我有一节课

Class A
{
   public virtual int[] measurements { get; set; }
   public virtual int Id { get; private set; }
   public virtual string Instrument { get; set; } 
 }
如何使用Fluent Hibernate进行映射


谢谢

您可以创建.CustomType(typeof(SomeType))并将其映射到逗号分隔的字符串。 这不是我推荐的

您最好创建第二个类来保存int,并使用.HasMany关系映射.HasMany(x=>x.measurements).Element(“Value”)


您可以将值更改为您希望列命名的任何名称。

您是否能够解决此问题?否,请参阅下面的注释问题已解决:Sqlite将数组存储在blob中。因此,默认情况下,保存和加载是有效的。所以,我不需要改变。正态映射工作映射(x=>x.measures);但是,当我试图保存对象时,我得到了一个错误Invalid Cast(检查映射中的属性类型不匹配);数据设置程序.A-->System.InvalidCastException:无法将类型为“NHibernate.Collection.PersistentBag”的对象强制转换为类型为“System.Int32[]”。啊,如果将数据类型更改为
IList
,而不是
int[]
,它将修复此错误。听起来你不需要使用这种映射方法。实际上,它是第三方dll,所以我无法更改它。但是,问题解决了。我能够将数组映射到Sqlite。Sqlite将数组存储到BLOB中。而且,当我从Sqlite DB重新加载时,BLOB列中的数据将解压到数组中。!!很酷,很高兴能成功。我不能100%确定这是否适用于SQL Server(我愚蠢地认为您正在使用它),但我有兴趣稍后试一试。