dans mon entité de commande je reçois une référence null sur orderItems. Cela se produit lors de la création d'une commande. Je voudrais pouvoir ajouter quelque chose commeinstanciation d'une collection nhibernate
order.OrderItems = new Iesi.Collections.Set<OrderItem>();
l'erreur est « Impossible d'accéder constructeur protégé « Set » ici
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: Cela n'a rien à voir avec nhibernate. Sans cette ligne, vous obtiendrez cette erreur si vous travaillez avec NH ou non. – UpTheCreek
Désolé, je devrais avoir mentionné, que Set est de type Iesi.Collections.Set. Cependant, je ne peux pas faire ce qui suit order.OrderItems = new Iesi.Collections.Set (); l'erreur est "Impossible d'accéder au constructeur protégé" Définissez "ici –
frosty
Puisque Iesi.Collections.Set est une classe abstraite, vous devrez utiliser l'une des implémentations telles que Iesi.Collections.HashedSet, Iesi.Collections.HybridSet, Iesi.Collections. ListSet ou Iesi.Collections.SortedSet –