コード マッピングで nHibernate 3.3.1.4 を使用しています。
Person オブジェクトと Picture オブジェクトがあり、Person には Picture メンバーがあります。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)));