nHibernate 4按代码类型映射错误

时间:2015-10-26 11:03:10

标签: c# asp.net nhibernate nhibernate-mapping mapping-by-code

我正在使用带有nHibernate 4.0.4.4000的Asp.Net vNext。

我的映射工作正常,但是当我将下面的地图放入时,我收到了错误。

Class Grupo:

public class Grupo : Entity
{
    public virtual string Nome { get; set; }
    public virtual string Remetente { get; set; }
    public virtual ICollection<ItemGrupo> Itens { get; set; }
}

地图:

public sealed class GrupoMap : ClassMapping<Grupo>
{
    public GrupoMap()
    {
        Table("correio.tbGrupo");

        Id(x => x.Id, c => c.Column("gruNumer"));

        Property(x => x.Nome, c => c.Column("gruNomes"));
        Property(x => x.Remetente, c => c.Column("corRemet"));

        Bag(x => x.Itens, t =>
        {
            t.Lazy(CollectionLazy.Lazy);
            t.Cascade(Cascade.All);
            t.Inverse(true);
            t.Key(k => k.Column("gruNumer"));
        }, map => map.OneToMany(a => a.Class(typeof(ItemGrupo))));
    }
}

我得到的错误是:

  

无法编译映射文档:mapping_by_code

     

无法确定类型:Project.Domain.Class.Grupo,   Project.Domain,Version = 1.0.0.0,Culture = neutral,   PublicKeyToken = null,对于列:NHibernate.Mapping.Column(gruNumer)

编辑:

我发现了问题,但我不知道如何解决,问题出在另一边的地图上,如下所示:

Class ItemGrupo:

public class ItemGrupo
{
    public virtual Grupo Grupo { get; set; }
    public virtual string Destino {get; set; }
}

Map ItemGrupo:

public sealed class ItemGrupoMap : ClassMapping<ItemGrupo>
    {
        public ItemGrupoMap()
        {
            Table("correio.tbIteGr");

            ComposedId(x => {
                x.Property(c => c.Grupo, cl => cl.Column("gruNumer"));
                x.Property(c => c.Destino, cl => cl.Column("corDesti"));
            });
        }
    }

错误是因为我的ComposedId上有一个对象,这就是问题,但我不知道如何解决......有些想法?

0 个答案:

没有答案