我有一份预约表和一份AppointmentOutcomes表 . 在我的Appointments表上,我有一个OutcomeID字段,它有一个AppointmentOutcomes的外键 . 我的Fluent NHibernate映射看起来如下;
Table("Appointments");
Not.LazyLoad();
Id(c => c.ID).GeneratedBy.Assigned();
Map(c => c.Subject);
Map(c => c.StartTime);
References(c => c.Outcome, "OutcomeID");
Table("AppointmentOutcomes");
Not.LazyLoad();
Id(c => c.ID).GeneratedBy.Assigned();
Map(c => c.Description);
使用NHibernate,如果我删除了AppointmentOutcome,则抛出异常,因为外键无效 . 我想要发生的是删除AppointmentOutcome会自动将引用AppointmentOutcome的任何约会的OutcomeID设置为NULL .
这是否可以使用Fluent NHibernate?
1 回答
删除结果时,需要在约会对象上将结果引用设置为null .
您将关系映射为一对多结果到预约(一个结果可以链接到多个约会) . 如果结果可以链接到多个约会,那么在删除结果之前,您需要在所有这些约会上取消引用结果(或设置级联删除) .