首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nhibernate Conformist映射“无法确定类型.”

Nhibernate Conformist映射“无法确定类型.”
EN

Stack Overflow用户
提问于 2011-09-07 19:25:06
回答 2查看 5.1K关注 0票数 13

全班:

代码语言:javascript
复制
    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; }
}

测绘:

代码语言:javascript
复制
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);
                                            });
    }
}

错误:

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-09 15:01:55

来自我们对nhuser邮件列表的讨论。

我遇到了同样的问题。

你还没有定义关系的类型。请参见行操作=> action.OneToMany();在下面的映射中。

代码语言:javascript
复制
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);
    }
}
票数 32
EN

Stack Overflow用户

发布于 2011-09-07 20:25:30

结果发现,问题在于我在其他类中的集合映射。如果不指定映射的操作,则会引发此(误导)错误。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7339463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档