0

我正在使用带有代码映射的 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)));
4

1 回答 1

0

你只需要设置partner.Picutrenull

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

在这里你完成了。

于 2012-07-27T07:04:24.373 回答