Fluent NHibernate Mapping Ненужный объект с использованием Automapping - PullRequest
0 голосов
/ 05 января 2011

У меня есть составной объект, настроенный Project-> Appraisal, у моего объекта оценки есть объект ApprovedMentor, который не требуется, но когда я иду, чтобы сохранить проект, бросает Nhib и ошибка, чтобы сказать, что ApprovedUser не был установлен.но это не установлено, потому что это не обязательное поле.Как я могу настроить это, используя беглое автоматическое отображение, это возможно?

 public class MentoringProject : BaseEntity
{
    public MentoringProject()
    {
        Appraisal =  new Appraisal();

    }

        [NotNullNotEmpty]
        [Length(Min=25, Max=1000)]
        public virtual string Description { get; set; }

        [Length(Min=25, Max=1000)]
        public virtual string SupportRequired { get; set; }

        [NotNullNotEmpty]
        public virtual System.DateTime? DateSubmitted { get; set; }

        [NotNullNotEmpty]
        public virtual System.DateTime? ClosingDate { get; set; }

        [NotNullNotEmpty]
        [Size(Min=1)]
        public virtual short Duration { get; set; }

        [NotNullNotEmpty]
        public virtual string Skills { get; set; }


        public virtual Appraisal Appraisal { get; set; }

}

 public class Appraisal : BaseEntity
{
    public Appraisal()
    {
        ShortlistedMentors = new List<User>();
        ApprovedMentor =  new User();
        College =  new RefData();
    }

    #region Primitive Properties

    public virtual bool Decision { get; set; }

    public virtual System.DateTime? ApprovedDate { get; set; }

    public virtual System.DateTime? AcceptedDate { get; set; }

    public virtual System.DateTime? CompletionTargetDate { get; set; }

    public virtual string RejectionReason { get; set; }

    #endregion

    #region Navigation Properties

    public virtual IList<User> ShortlistedMentors { get; set; }

    public virtual User ApprovedMentor { get; set; }

    public virtual RefData College { get; set; }

    #endregion
}

Ответы [ 2 ]

0 голосов
/ 05 января 2011

Я думаю, что я решил это, когда привязывая пользовательский интерфейс к контроллеру в MVC, MVC создает пустой объект User, и потому что этот объект имеет обязательные поля, установленные на нем с использованием валидатора nhib, и nhib пытался создать новый объект пользователя,Я обошел это, проверив, есть ли у пользователя намерения добавить, если нет, я установил Appraisal.ApprovedMentor==null

0 голосов
/ 05 января 2011

Мне кажется, что вы просто хотите игнорировать свойство ShortlistedMentors, которое вам нужно сделать в вашем классе отображения следующим образом:

map.IgnoreProperty (p => p.ShortlistedMentors);

Этот ответ был опубликован в этом вопросе .

...