I'm running in to a bit of a problem where any attempt to delete just the reference to a child also deletes the child record.
My schema looks like this
Person
Organisation
OrganisationContacts : Person
OrgId
PersonId
Role
When removing an Organisation i want to only delete the record in OrgnaisationContacts, but not touch the Person record.
My Mapping looks like this
Code:
public OrganisationMap()
        {
             Table("Organsations");
              ....
HasMany<OrganisationContact>(x => x.Contacts)
                .Table("OrganisationContacts ")
                .KeyColumn("OrgId")
                .Not.Inverse()
                .Cascade.AllDeleteOrphan();
}
public class OrganisationContactMap : SubclassMap<OrganisationContact>
    {
        public OrganisationContactMap()
        {
            Table("OrganisationContacts");
    
            Map(x => x.Role, "PersonRole");
            Map(x => x.IsPrimary);
        }
    }
At the moment just removing a contact from the IList<Contact> either doesn't reflect in the database at all, or it issues two delete statements DELETE FROM OrganisationContact & DELETE FROM Person, or tries to set PersonId to null in the OrganisationContacts table. All of which are not desirable.
Any help would be great appreciated.