I have a problem with Fluent Nhibernate: error "Could not resolve the MailHeader property of the MailHeader class.
The problem is with the collections inside the MailHeader object, if I delete the collections, the exception will disappear, but I need these collections! Thanks in advance.
Participating objects:
public class MailHeader : Entity { public MailHeader() { MailRecipientUsers = new List<MailRecipientUser>(); MailsDeleted = new List<MailDeleted>(); } [Required] public virtual string Subject { get; set; } public virtual IList<MailRecipientUser> MailRecipientUsers { get; protected set; } public virtual IList<MailDeleted> MailsDeleted { get; protected set; } } public class Mail : Entity { public Mail() { Creation = DateTime.Now; MailHeader = new MailHeader(); } [Required] public virtual string BodyText { get; set; } [Required] public virtual MailHeader MailHeader { get; set; } public virtual Mail Parent { get; set; } [Required] public virtual User From { get; set; } public virtual Mail Child { get; set; } [DataType(DataType.Date)] public virtual DateTime Creation { get; set; }
Display:
public class MailHeaderMap : IAutoMappingOverride<MailHeader> { public void Override(AutoMap<MailHeader> mapping) { mapping.HasMany(x => x.MailRecipientUsers) .Inverse() .Cascade.AllDeleteOrphan(); mapping.HasMany(x => x.MailsDeleted) .Inverse() .Cascade.AllDeleteOrphan(); } } public class MailMap : IAutoMappingOverride<Mail> { public void Override(AutoMap<Mail> mapping) { mapping.References(x => x.From); mapping.References(x => x.Parent); mapping.References(x => x.MailHeader); mapping.HasOne(e => e.Child) .WithForeignKey() .PropertyRef(a => a.Parent) .Cascade.All(); } } public class MailRecipientUserMap : IAutoMappingOverride<MailRecipientUser> { public void Override(AutoMap<MailRecipientUser> mapping) { mapping.References(x => x.MailHeader); mapping.References(x => x.User); } } public class MailDeletedMap : IAutoMappingOverride<MailDeleted> { public void Override(AutoMap<MailDeleted> mapping) { mapping.References(x => x.MailHeader); mapping.References(x => x.User); } }
c # fluent-nhibernate
Marco casiraghi
source share