IList<int> 的流畅 NHibernate 映射?
Posted
技术标签:
【中文标题】IList<int> 的流畅 NHibernate 映射?【英文标题】:Fluent NHibernate mapping for IList<int>? 【发布时间】:2016-05-11 19:24:08 【问题描述】:我正在使用 Fluent NHibernate 2.0.3 和 NHibernate 4.0.0.4000 后端数据库是 Sqlite。
我的实体和映射是这样定义的:
public class PriceHistory
public virtual int ID get; set;
public virtual IList<long> Date get; set;
public virtual IList<float> Price get; set;
public virtual IList<int> Volume get; set;
public virtual float MinPrice get; set;
public virtual float MaxPrice get; set;
class PriceHistoryMap : ClassMap<PriceHistory>
public PriceHistoryMap()
Table("PriceHistories");
Id(x => x.ID);
HasMany<long>(x => x.Date);
HasMany<float>(x => x.Price);
HasMany<int>(x => x.Volume);
Map(x => x.MinPrice);
Map(x => x.MaxPrice);
当我尝试启动应用程序时,出现以下异常:
Association references unmapped class: System.Int64
我有 int、long 还是 float 都没关系。我总是遇到异常,好像我必须为每个基本值类型定义映射。
这里有什么问题?值类型列表的正确映射是什么?
【问题讨论】:
【参考方案1】:我相信您可能必须将其命名为HasMany<int>(x => x.Volume).Element("Value");
这个post 也可能对您的问题有所帮助
【讨论】:
【参考方案2】:我不确定,但听起来您的浮点数、整数和长整数位于不同的表中?
如果是这种情况,您可能必须为每个人设置HasMany
关系,如下所示:
HasMany<int>(x => x.Volume)
.Table("PriceHistoryVolumes")
.KeyColumn("PriceHistoryID")
.Element("Volume");
【讨论】:
以上是关于IList<int> 的流畅 NHibernate 映射?的主要内容,如果未能解决你的问题,请参考以下文章