в моей организации заказа Я получаю null ref на orderItems. Это происходит, когда заказ сначала создается. Я хотел бы иметь возможность добавить что-то вродеэкземпляр коллекции 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
Извините, я должен был упомянуть, что Set имеет тип Iesi.Collections.Set. Однако я не могу сделать следующее: order.OrderItems = new Iesi.Collections.Set (); ошибка «Невозможно получить доступ к защищенному конструктору« Установить »здесь –
frosty
Поскольку Iesi.Collections.Set является абстрактным классом, вам нужно будет использовать одну из реализаций, такую как Iesi.Collections.HashedSet, Iesi.Collections.HybridSet, Iesi.Collections. ListSet или Iesi.Collections.SortedSet –