我正在使用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)));
答案 0 :(得分:0)
Yuo只需要将partner.Picutre
设置为null
var picture = partner.Picutre;
partner.Picutre = null
_pictureRepository.Delete(picture);
在这里你完成了。