我正在使用带有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上有一个对象,这就是问题,但我不知道如何解决......有些想法?