0
public class ReviewMap : ClassMapBase<Review>
{
public ReviewMap()
{
Table("Reviews");
List(x => x.Objectives, m =>
{
m.Table("Objectives");
m.Cascade(Cascade.All.Include(Cascade.DeleteOrphans));
m.Key(k => k.Column("ReviewId"));
m.Where("DeletionDate is null");
m.OrderBy("OrderNo");
m.Index(x => x.Column("OrderNo"));
m.Inverse(true);
}, m => m.OneToMany());
}
public class ObjectiveMap : ClassMapBase<Objective>
{
public ObjectiveMap()
{
Table("Objectives");
// Use "soft deletes" to allow us to capture results against deleted items
Where("DeletionDate is null");
SqlDelete("update Objectives set DeletionDate = getutcdate(), OrderNo = 1 where id=?");
ManyToOne(x => x.Review, m =>
{
m.Column("ReviewId");
m.NotNullable(true);
});
Property(x => x.Details, m =>
{
m.NotNullable(true);
m.Length(1000);
m.Column("Details");
});
Property("OrderNo", m =>
{
m.NotNullable(false);
});
}
}
当我尝试删除评论,然后它给我在目标表中的外键约束的错误。因为ReviewId是Objectives表中的外键。无法删除Nhibernate映射中的外键约束
你能提出什么问题吗?
好的非常感谢。我将讨论我们的需求需要什么类型的方法。我真的很感谢你的帮助:-)谢谢你 – Moiz 2013-05-14 08:27:38
即使我改变了sqldelete(update更改为ReviewId = null,但它仍然给我出现同样的错误 – Moiz 2013-05-14 08:43:08
@Moiz你应该检查NHibernate执行的NHibernate的NHibernate语句日志记录或SQL/NHibernate分析器。 – cremor 2013-05-14 09:02:50