2012-08-03 5 views
1

두 개의 가방이있는 클래스가 있습니다. 하나의 가방은 클래스 모음과 함께 작동하며 작동하며 다른 가방은 긴 값의 모음이며이 가방은 유지되지 않습니다. 나는 이것을 위해 모든 웹을 검색했으며 내 매핑은 괜찮은 것으로 보입니다. 내지도에서Nhibernate 가방 요소가 지속되지 않습니다.

나는이 있습니다

<class name="Event" table="Events"> 
    <id name="Id" type="Int32"> 
     <generator class="native" /> 
    </id> 
    <property name="Name" /> 
    <property name="Owner" /> 
    <many-to-one name="DeliveryAddress" column="DeliveryAddressId" cascade="save-update, persist" /> 
    <many-to-one name="EventAddress" column="EventAddressId" cascade="save-update, persist" /> 
    <bag name="Friends" table="Event_Friends" lazy="false" inverse="true" cascade="save-update, persist" fetch="join"> 
     <key column="EventId" /> 
     <element column="Friend" type="Int64" /> 
    </bag> 
    <bag name="Products" table="Event_Products" lazy="false" inverse="true" cascade="all,delete-orphan" fetch="join"> 
     <key column="EventId" /> 
     <one-to-many class="Product" /> 
    </bag> 
    </class> 

나는 두 adresses를 작성하는 이벤트와 모든 제품을 만들어 내 세션 NHibernate에에 SabeOrUpdate 부르지 만 친구 목록이 저장되지 않습니다

. 저장 후 Get을 실행하면 데이터베이스에 대한 선택이 정확합니다. 나는 그 밖에 무엇이 될 수 있는지 모른다.

이 매핑에 대한 나의 모델은 이것이다 :

public class Event 
{ 
    public virtual int Id { get; set; } 
    public virtual string Name { get; set; } 
    public virtual Int64 Owner { get; set; } 
    public virtual Address DeliveryAddress { get; set; } 
    public virtual Address EventAddress { get; set; } 
    public virtual ICollection<Int64> Friends { get; set; } 
    public virtual ICollection<Product> Products { get; set; } 
} 

을 내 데이터베이스는 다음과 같습니다

Events 
------------------------------- 
Id    int  identity 
Name    varchar 
Owner    long 
DeliveryAddressId int 
EventAddressId int 

Address 
------------------------------- 
Id    int 
-- Code Abbreviated -- 

Event_Products 
------------------------------- 
Id    int 
EventId   int 
-- Code Abbreviated -- 

Event_Friends 
------------------------------- 
EventId   int 
Friend   long 

답변

2

당신은 갈망의 컬렉션에 대한 false에 역을 변경해야합니다

<bag name="Friends" table="Event_Friends" lazy="false" inverse="false" cascade="save-update, persist" fetch="join"> 
    <key column="EventId" /> 
    <element column="Friend" type="Int64" /> 
</bag> 
+0

그것은 작동합니다. 나는 그것이 이것을 믿을 수 없다. 나는 이미 역 거짓으로 이미 시도했지만, 아무런 성공도없이 몇 시간을 테스트 한 후에는 더 이상 우리가 실제로 무엇을했는지 모릅니다. – Luiz

관련 문제