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>
當我打電話SabeOrUpdate在我的會話NHibernate的創建都不會忽略,創建事件和所有的產品,但不保存在好友列表中。 保存後,我發出一個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
有用。我不能相信這是。我非常肯定,已經嘗試了反向錯誤,但經過幾個小時的測試,但沒有成功,我們不知道我們真的做了什麼。 – Luiz 2012-08-03 10:36:55