Nhibernate Conformist Mapping"无法确定类型......"

tom*_*ich 13 nhibernate nhibernate-mapping

班级:

    public class SOPProcess : ISOPProcess
{
    public virtual Guid Id { get; set; }
    public virtual SOP SOP { get; set; }
    public virtual ProcessType Type { get; set; }       

    public virtual SOPProcessInput Input { get; set; }
    public virtual SOPProcessOutput Output { get; set; }
    public virtual SOPProcessMeasures Measures { get; set; }

    public virtual decimal YieldFactor { get; set; }

    public virtual SOPProcess PreviousProcess { get; set; }
    public virtual SOPProcess NextProcess { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

映射:

public class SOPProcessMap : ClassMapping<SOPProcess>
{
    public SOPProcessMap()
    {
        Id(s => s.Id, i => i.Generator(Generators.GuidComb));

        Property(s => s.YieldFactor);           

        ManyToOne(s => s.SOP, m =>
                                {
                                    m.Column("SopId");
                                    m.Cascade(Cascade.All);
                                });

        ManyToOne(s => s.Type, m =>
                                {
                                    m.Column("ProcessTypeId");
                                    m.Cascade(Cascade.All);
                                });

        ManyToOne(s => s.NextProcess, m =>
                                        {
                                            m.Column("NextProcessId");
                                            m.Cascade(Cascade.All);
                                        });

        ManyToOne(s => s.PreviousProcess, m =>
                                            {
                                                m.Column("PreviousProcessId");
                                                m.Cascade(Cascade.All);
                                            });
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

NHibernate.MappingException:无法确定类型:MES.ProcessManager.SOP.SOPProcess,MES.ProcessManager,用于列:NHibernate.Mapping.Column(id)

我希望这很简单,这是我使用Conformist映射的第一个项目,所以也许我只是忽略了一些东西.

Fra*_*ran 32

从我们对nhusers邮件列表的讨论.

我遇到了同样的问题.

您尚未定义关系类型.参见line action => action.OneToMany()); 在下面的映射中.

public class SportMap : ClassMapping<Sport>
{
    public SportMap()
    {
        Id(x => x.Id, map =>
        {
            map.Column("Id");
            map.Generator(Generators.GuidComb);
        });

        Property(x => x.Name, map =>
        {
            map.NotNullable(true);
            map.Length(50);
        });

        Bag(x => x.Positions, map =>
        {
            map.Key(k => k.Column(col => col.Name("SportId")));
            map.Cascade(Cascade.All | Cascade.DeleteOrphans);
        },
        action => action.OneToMany());

        Property(x => x.CreateDate);
        Property(x => x.CreateUser);
        Property(x => x.LastUpdateDate);
        Property(x => x.LastUpdateUser);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • +1我在使用`ConventionModelMapper`切换到`ModelMapper`时遇到了同样的问题,这引出了我的答案.`SimpleModelInspector`指出了用于每个集合的操作. (2认同)
  • 同样在这里.感谢分享,错误消息相当神秘. (2认同)