자식 클래스의 두 목록이있는 부모 클래스Nhibernate에 많은 삽입이 추가 업데이트를 생성합니다 (반전 없음)
public class Parent
{
...
public virtual ICollection<Foo> Foo{ get; set; }
public virtual ICollection<Bae> Bar{ get; set; }
}
public class Foo
{
...
public virtual Parent Parent{ get; set; }
}
public class Bar
{
...
public virtual Parent Parent{ get; set; }
}
매핑은
부모 개체를 저장할 때마다
INSERT Parent ...
INSERT Foo with Parent_id set to NULL
INSERT Bar with Parent_id set to NULL
UPDATE Foo set Parent_id to Parent id
UPDATE Bar set Parent_id to Parent id
에서 관계를 Inverse
로 설정하면 추가 업데이트를 피할 수 있습니까?
부모를 저장하기 위해 어린이를 저장하는 것은 의미가 없습니다. 특히 두 개의 다른 자식 객체가있을 때 특히 그렇습니다. 내가 원하는 것은'session.Save (parent)'를 호출하고 전체 트리를 저장하는 것입니다. –
@Circadian, 그게 바로 당신을 위해 inverse가 달성 할 것입니다. 부모를 구할 아이가 필요하지 않습니다. –
@Circadian 당신은 이미'Cascade.All()'을 가지고 있습니다. 그러면 자식들에게'Save()'를 호출 할 필요가 없습니다. 이것은 내가 반대의 독립 또는 내가 제안한 다른 방법이다. – cremor