實體我在訂購商品上得到空引用。這是在第一次創建訂單時發生的。我希望能夠添加類似在我的訂單中實例化一個nhibernate集合
order.OrderItems = new Iesi.Collections.Set<OrderItem>();
錯誤是「無法訪問受保護的構造‘設置’,這裏
public class Order
{
public virtual int Id { get; set; }
public virtual ISet<OrderItem> OrderItems { get; set; }
public virtual void AddOrderItem(OrderItem item)
{
item.Order = this;
// OrderItems below is null
OrderItems.Add(item);
}
}
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="EStore.Domain"
namespace="EStore.Domain.Model">
<class name="Order" table="Orders">
<id name="Id" type="Int32" column="Id" unsaved-value="0">
<generator class="identity"/>
</id>
<property name="UserName" column="UserName"/>
<set name="OrderItems" table="OrderItems" generic="true" cascade="all-delete-orphan" inverse="true" >
<key column="OrderId" not-null="true" />
<one-to-many class="EStore.Domain.Model.OrderItem, EStore.Domain" />
</set>
</class>
</hibernate-mapping>
@frosty:這不是什麼做與NHibernate。沒有這條線,你會得到這個錯誤,無論是否與NH工作。 – UpTheCreek 2010-11-16 15:30:10
對不起,我應該提到,集是類型Iesi.Collections.Set。但我不能做以下 order.OrderItems = new Iesi.Collections.Set ();錯誤是「無法訪問受保護的構造函數」Set「 –
frosty
2010-11-16 15:52:11
因爲Iesi.Collections.Set是一個抽象類,您將需要使用其中一個實現,例如Iesi.Collections.HashedSet,Iesi.Collections.HybridSet,Iesi.Collections。 ListSet或Iesi.Collections.SortedSet – 2010-11-16 15:58:32