FluentNhibernate HasMany包含组件

时间:2010-01-22 12:29:49

标签: nhibernate fluent-nhibernate

我有这个映射:

    HasMany<ClassA>(ot => ot.AList)
        .Table("XPTO")
        .KeyColumn("IDXPTO")
        .Component(m =>
                        {
                            m.Map(a=> a.X, "X");
                            m.Map(x=> x.Y, "Y");
                        })
         .Cascade.AllDeleteOrphan();

我得到一个错误,说“指的是未映射的类ClassA”,但我不需要映射它。我在互联网上看到了其他类似映射的例子,他们没有这个问题......

如果我只使用ID为A类创建一个classMap,那么它的工作原理,但数据模型将为classA提供1个不必要的表,只有id,因为属性X和Y将映射到表XPTO上...

2 个答案:

答案 0 :(得分:2)

尝试通过为HasMany指定类型来映射它:

    HasMany(ot => ot.AList)
    .Table("XPTO")
    .KeyColumn("IDXPTO")
    .Component(m =>
                    {
                        m.Map(a=> a.X, "X");
                        m.Map(x=> x.Y, "Y");
                    })
     .Cascade.AllDeleteOrphan();

答案 1 :(得分:0)

好吧,未映射的类的错误不是由于hasmany,而是因为我在那里的其他属性一对一地引用了ClassA。因此,我与classA和一对多有一对一的关系,第一个引起了错误。 我解决了这个问题,然后才有效。