0
我使用的nHibernate 3.3.1.4与代码映射。代码映射:DELETE语句与REFERENCE约束冲突
有Person和Picture对象,其中Person有一个图片成员。 图片有一个Id(int)和Image(byte [])成员。 在上传新的图片,我想先删除旧图片如下:
var person = _personRepository.Get(personId);
var picture = partner.Picutre;
_pictureRepository.Delete(picture);
但是看来我的映射是不正确的,因为我得到“DELETE语句冲突与基准约束的错误.. ......”
这里是我的映射:
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)));
我之前有过,只是改回来了。没有错误,但在Person的PictureFk字段设置为null时,Pictures表中的图像不会被删除。 – Krokonoster 2012-07-27 07:49:02
我的意思是你必须把它放在'var picture = partner.Picutre;'和'_pictureRepository.Delete(picture);'之间。我会更新示例。 – hazzik 2012-07-27 11:54:00