表中的关联引用了未映射的类:System.Decimal

时间:2014-06-26 10:11:27

标签: hibernate nhibernate orm fluent-nhibernate fluent-nhibernate-mapping

有一些与A相关联的linkValues是十进制值。

public class A
{
    public int Id { get; set; }
    public List<Decimal> LinkValues { get; set; }
}


public class AMap : ClassMap<A>
{
    public AMap()
    {
        Id(x => x.Id).Column("A_Id");

        HasManyToMany<Decimal>(x => x.Links)
                .Table("A_Link_Value_Map")
                .ParentKeyColumn("A_Id")
                .ChildKeyColumn("Link_Value")
                .Cascade.SaveUpdate();
    }
}

我遇到了问题“表A_Link_Value_Map中的关联引用了未映射的类:System.Decimal”。任何人都有任何想法,或者你可以请你的想法。

1 个答案:

答案 0 :(得分:2)

映射HasManyToMany期望 entity / object 而不是ValueType - 在多对多的另一端。许多对多人还要求配对表。

我们需要的映射是HasMany ValueType ,例如Decimal我们需要.Element()映射:

HasMany(x => x.Links)
    .Table("A_Link_Value_Map")
    .KeyColumn("A_Id")
    .Element("Link_Value") // Value Type would be an Element
    .Cascade.SaveUpdate();