1
다음과 같은 매핑이 있지만 상태 엔티티를 삭제하면 Nhibernate가 삭제 대신 자식에 대한 업데이트를 실행합니다. 이 SQL에서Nhibernate 3.x 캐스케이드 - 업데이트 중
public StatusMap()
{
Property(x => x.Date);
Property(x => x.Text, map => map.Type(NHibernateUtil.StringClob));
Property(x => x.Type);
ManyToOne(x => x.User, map => map.Column("UserId"));
Bag(x => x.Comments, map => { map.Key(km => km.Column("StatusId")); }, action => action.OneToMany());
Bag(x => x.Likes, map => { map.Key(km => km.Column("StatusId")); map.Cascade(Cascade.DeleteOrphans); }, action => action.OneToMany());
}
public StatusLikeMap()
{
ManyToOne(x => x.User, map => map.Column("UserId"));
ManyToOne(x => x.Status, map => { map.Column("StatusId"); });
Property(x => x.Date);
}
삭제 (상태) 결과 :
UPDATE
CommentStatus
SET
StatusId = null
WHERE
StatusId = @p0;
@p0 = ce350d55-e476-4874-9e95-341cad9342e2 [Type: Guid (0)]
UPDATE
StatusLike
SET
StatusId = null
WHERE
StatusId = @p0;
@p0 = ce350d55-e476-4874-9e95-341cad9342e2 [Type: Guid (0)]
DELETE
FROM
Status
WHERE
Id = @p0;
@p0 = ce350d55-e476-4874-9e95-341cad9342e2 [Type: Guid (0)]
어떤 생각? 도와주세요, 제발 !
편집 :
나는 예외가 작동 이하 및 변경했으나이 방법은 삭제 명령을 발사 데이터베이스입니다.
nhibernate가 데이터베이스 대신 삭제를 실행하도록하려면 어떻게해야합니까?
Bag(p => p.Likes, map =>
{
map.Key(k =>
{
k.Column("StatusId");
k.OnDelete(OnDeleteAction.Cascade);
});
map.Cascade(Cascade.DeleteOrphans);
map.Inverse(true);
}, ce => ce.OneToMany());