는 내가 가지고있는 것은 이것이다 :삭제 된 개체가 계단식으로 다시 저장됩니다
- Domain.List는 "하위 목록" Domain.List이 많은 ListToListMemberships 호출했다
- "ParentLists" 라는 많은 ListToListMemberships있다
- ListToListMembership에는 List (부모)가 하나 있습니다.
- ListToListMembership에는 다른 List (멤버)가 있습니다.
이 나는 다음과 같은 테스트를 통과 할 감안할 : 나는 목록을 만들 때 기본적으로
[Test]
public void WhenDeletingChildMembershipShouldBeDeletedButNotParent()
{
var list = new Domain.List();
var child = new Domain.List();
var membership = new ListToListMembership()
{
Member = child,
};
list.SubLists.Add(membership);
Session.Save(list);
Session.Flush();
Session.Evict(list);
Session.Evict(child);
var childFromDb = Session.Linq<Domain.List>()
.FirstOrDefault(l => l.ID == child.ID);
Assert.IsNotNull(childFromDb, "child wasn't saved when the parent was saved");
Assert.AreNotSame(child, childFromDb, "child was pulled from cache not the db");
//This will allow it to pass, but I don't want to have to do this.
// foreach (var m in childFromDb.ParentLists)
// {
// m.List.SubLists.Remove(m);
// Session.Save(m.List);
// }
Session.Delete(childFromDb);
Session.Flush();
Session.Evict(childFromDb);
var membershipFromDb = Session.Linq<ListToListMembership>()
.FirstOrDefault(m => m.ID == membership.ID);
Assert.IsNull(membershipFromDb, "membership wasn't deleted");
var parentFromDb = Session.Linq<Domain.List>()
.FirstOrDefault(l => l.ID == list.ID);
Assert.IsNotNull(parentFromDb, "parent list was deleted");
}
을하고 그것에 멤버와 그룹 구성원을 추가, 내가 만들 수 회원과 회원을 원한다 자동으로
또한 부모 목록이나 회원 목록을 삭제할 때 회원 목록은 삭제되지만 부모 목록의 경우 삭제되지 않으며 부모 목록의 경우 삭제되지 않습니다 (회원 목록의 경우 삭제됨).
Domain.List :
<!-- Other relevant fields -->
[HasMany(typeof(ListToListMembership),ColumnKey="ListId",
Cascade = ManyRelationCascadeEnum.AllDeleteOrphan)]
public IList<ListToListMembership> SubLists{
get;
set;
}
[HasMany(typeof(ListToListMembership),ColumnKey="MemberId",
Cascade = ManyRelationCascadeEnum.AllDeleteOrphan)]
public IList<ListToListMembership> ParentLists {
get;
set;
}
ListToListMembership :
<!-- other relevant fields -->
[BelongsTo("ListId",Cascade=CascadeEnum.SaveUpdate)]
public List List {
get;
set;
}
[BelongsTo("MemberId", Cascade = CascadeEnum.SaveUpdate)]
public List Member {
get;
set;
}
감사합니다. 회원 등급을 보유한 이유는 Domain.List가 Domain.List에 따라 특정 속성 값을 가지기 때문입니다. 이는 표시 될 때의 멤버입니다. 이 문제는 확실히 계단식 논쟁이며, 그 이유는 학부모 또는 자녀가 삭제되면 더 이상 회원 자격이 필요하다는 것입니다. –