Подтвердить что ты не робот

Nhibernate Conformist 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; }
}

Отображение:

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, поэтому, возможно, я просто что-то пропустил.

4b9b3361

Ответ 1

Из нашего обсуждения списка рассылки nhusers.

Я столкнулся с теми же проблемами.

Вы не определили тип отношения. См. Строку 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);
    }
}

Ответ 2

Оказалось, что проблема была в моих сетках в других классах. Если вы не укажете действие для сопоставления, оно вызывает эту (вводящую в заблуждение) ошибку.