代码映射:DELETE语句与REFERENCE约束冲突

时间:2012-07-27 06:49:07

标签: nhibernate

我正在使用nHibernate 3.3.1.4和代码映射。

拥有Person和Picture对象,其中Person拥有Picture成员。 图片有一个Id(int)和Image(byte [])成员。 上传新图片时,我想先删除旧图片,如下所示:

var person = _personRepository.Get(personId);
var picture = partner.Picutre;
_pictureRepository.Delete(picture);

然而,似乎我的映射是不正确的,因为我收到有关“DELETE语句与REFERENCE约束冲突的错误.....”

这是我的映射:

mapper.Class<Person>(map => map.ManyToOne(x => x.Picture, pic => pic.Cascade(Cascade.DeleteOrphans)));

mapper.Class<Picture>(map => map.Property(x => x.Image, x => x.Type(NHibernateUtil.BinaryBlob)));

1 个答案:

答案 0 :(得分:0)

Yuo只需要将partner.Picutre设置为null

var picture = partner.Picutre;
partner.Picutre = null
_pictureRepository.Delete(picture);

在这里你完成了。