This question is locked. New answers and comments are not allowed.
How to make foreign key in One-to-Many self reference association?
I try like that, but no key is created:
I try like that, but no key is created:
protected override IList<MappingConfiguration> PrepareMapping() { List<MappingConfiguration> preparedConfigs = new List<MappingConfiguration>(); MappingConfiguration<Class> classConfiguration = new MappingConfigurationWithNamingRules<Class>(); classConfiguration.MapType(p => new { UniqID = p.UniqID, ParentClassID = p.ParentClassID, }).ToTable("Class"); classConfiguration.MapType().ToTable("Class"); classConfiguration.HasProperty(p => p.UniqID).IsIdentity(KeyGenerator.IncrementalGuid).ToColumn("UniqID"); classConfiguration.HasAssociation(p => p.ParentClass).WithOpposite(p => p.ChildClasses).HasConstraint((p, c) => p.ParentClassID == c.UniqID); preparedConfigs.Add(classConfiguration); return preparedConfigs; } protected override MetadataContainer CreateModel() { MetadataContainer container = base.CreateModel(); container.DefaultMapping.NullForeignKey = true; return container; }public class Class{ private Class _parentClass; private Guid _parentClassID; private IList<Class> _childClasses; private Guid _uniqID; public Class ParentClass { get { return _parentClass; } set{_parentClass = value;} } public IList<Class> ChildClasses { get { return _childClasses; } set{_childClasses = value;} } public Guid ParentClassID { get { return _parentClassID; } set{_parentClassID = value;} } public Guid UniqID { get { return _uniqID; } set{_uniqID = value;} } public Class() { ChildClasses = new List<Class>(); }}