Getting this exception: NHibernate.MappingException: Repeated column in mapping for collection: TrainingDB.Core.Division.Ancestors column: DivisionID
Here is what my CONFIGURATION looks like: private void GetConventions(Conventions c) { c.GetTableName = type => Inflector.Net.Inflector.Pluralize(type.Name); c.IsBaseType = IsBaseTypeConvention; c.GetPrimaryKeyNameFromType = type => type.Name + "ID"; c.FindIdentity = type => type.Name == "Id"; c.GetForeignKeyNameOfParent = type => type.Name + "ID"; c.OneToManyConvention = o => o.Cascade.All(); c.GetManyToManyTableName = ((child, parent) => parent.Name + Inflector.Net.Inflector.Pluralize(child.Name)); } Here is what my CLASS looks like: using NHibernate.Validator.Constraints; using SharpArch.Core; using SharpArch.Core.DomainModel; using System.Collections.Generic; namespace TrainingDB.Core { public class Division: Entity { public Division() { InitMembers(); } public Division(string abbr, string name) : this() { Check.Require(!string.IsNullOrEmpty(abbr) && !string.IsNullOrEmpty (name) && abbr.Trim() != string.Empty && name.Trim() != string.Empty, "Abbreviation and a Name must be provided"); this.Abbr = abbr; this.Name = name; } #region Persisted Properties [DomainSignature] [NotNullNotEmpty(Message = "An abbreviation must be provided")] public virtual string Abbr { get; set; } [DomainSignature] [NotNullNotEmpty(Message = "Name must be provided")] public virtual string Name { get; set; } public virtual string ADName { get; set; } public virtual int? MailCode { get; set; } public virtual int? HomeDeptCode { get; set; } public virtual Division ParentDivision { get; protected set; } public virtual string ProjectNumber { get; set; } public virtual string Description { get; set; } public virtual int DisplayOrder { get; set; } public virtual int Depth { get; set; } public virtual string Path { get; set; } public virtual IList<Division> ChildDivisions { get; protected set; } public virtual IList<Index> Indexes { get; protected set; } public virtual IList<User> Users { get; protected set; } #endregion #region Other Properites List<Division> ancestors; public virtual IList<Division> Ancestors { get { ancestors = ancestors ?? GetAncestors(this); return ancestors; } } #endregion #region Methods public virtual void AddChildDivision(Division o) { if (!this.ChildDivisions.Contains(o)) { o.ParentDivision = this; this.ChildDivisions.Add(o); } } public virtual void RemoveChildDivision(Division o) { if (this.ChildDivisions.Contains(o)) { o.ParentDivision = null; this.ChildDivisions.Remove(o); } } public virtual void AddIndex(Index o) { if (!this.Indexes.Contains(o)) { o.Division = this; this.Indexes.Add(o); } } public virtual void RemoveIndex(Index o) { if (this.Indexes.Contains(o)) { o.Division = null; this.Indexes.Remove(o); } } public virtual void AddUser(User o) { if (!this.Users.Contains(o)) { o.Division = this; this.Users.Add(o); } } public virtual void RemoveUser(User o) { if (this.Users.Contains(o)) { o.Division = null; this.Users.Remove(o); } } #endregion /// <summary> /// Since we want to leverage automatic properties, init appropriate members here. /// </summary> private void InitMembers() { ChildDivisions = new List<Division>(); Indexes = new List<Index>(); Users = new List<User>(); } private List<Division> GetAncestors(Division d) { List<Division> ancestors = new List<Division>(); if (d.ParentDivision != null) { ancestors.Add(d.ParentDivision); ancestors.AddRange(GetAncestors(d.ParentDivision)); } return ancestors; } } } .... Here is what my TABLE looks like: Table Name: Divisions Columns: DivisionID (pk,int, not-null), ParentDivisionID (fk, int, null), .... <a bunch of other columns> .... What am I missing and/or doing wrong here? The "Ancestors" property it is complaining about isn't mapped to anything. Its simply a helper method to traverse up the parent/child hierarchy based on the ParentDivisionID column. Thanks! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to fluent-nhibernate@googlegroups.com To unsubscribe from this group, send email to fluent-nhibernate+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en -~----------~----~----~----~------~----~------~--~---