0

コード マッピングで 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)));
4

1 に答える 1

0

Yuo に設定partner.Picutreするだけです。null

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

これで完了です。

于 2012-07-27T07:04:24.373 に答える