J'ai un objet employeur qui peut avoir plusieurs personnes:Nhibernate supprimer des parents dans plusieurs à une relation entraînant la violation clé étrangère
//entities
public class Person {
public virtual Guid Id {get;set;}
public virtual string Name {get;set;}
public virtual Employer CurrentEmployer {get;set;}
}
public class Employer {
public virtual Guid Id {get;set;}
public virtual string Name {get;set}
public virtual IList<Person> Employees {get;set;}
}
//person to employer mappings
References(x => x.CurrentEmployer)
.Cascade.All()
.Column("CurrentEmployerId")
.ForeignKey("FK_Person_CurrentEmployer");
//employer to person mappings
HasMany(x=> x.Employees)
.Inverse()
.Cascade.All();
Lorsque je tente de supprimer un employeur qui est lié à une personne, je obtenez une erreur "Foreign Key violation". Comment puis-je obtenir nHibernate pour annuler la colonne CurrentEmployerId avant la suppression de l'employeur?
merci pour l'idée, mais une partie de mes exigences est que la suppression soit effectuée par nhibernate. – wusher
Dans mes deux solutions, vous auriez toujours nhibernate effectuant la suppression; Dans le premier cas, votre code inclurait simplement une instruction de mise à jour avant la suppression, dans la seconde, l'intercepter/listener exécuterait l'instruction de mise à jour en réponse à l'apparition d'une suppression. –