2017-06-14 2 views
0

Quelqu'un peut-il vérifier cette propriété et son mapping et m'expliquer pourquoi elle déclenche cette erreur.Cascade.AllDeleteOrphan(). ReadOnly() ne fonctionne pas

Remarque Lorsque je commente .ReadOnly() il ne se déclenche pas cette erreur et même si je change le rôle Cascade de AllDeleteOrphan() Pour All()

Voici mon code

public virtual IList<ApprovalApplicationTask> Tasks { get; protected set; } 

HasMany(entity => entity.Tasks).KeyColumn("APPLICATION_ID").Cascade.AllDeleteOrphan() 
    .ReadOnly().Inverse(); 

Cette est l'erreur que j'obtiens

NHibernate.AssertionFailure: aucun instantané de collection pour orphelins supprimer à NHibernate.Engine.CollectionEntry.GetOrphans (String entityName, collection IPersistentCollection) à NHibernate.Engine.Cascade.DeleteOrphans (String EntityName, pc IPersistentCollection) à NHibernate .Engine.Cascade.CascadeCollectionElements (parents d'objets, enfant d'objets, CollectionType CollectionType, le style CascadeStyle, iTYPE elemType, objet quoi que ce soit, Boolean isCascadeDeleteEnabled) à

Répondre

1

Vous essayez de combiner deux paramètres incompatibles.

Couramment ReadOnly pour les collections est en effet mutable="false" dans les applications réelles NHibernate. Cette option déclare la collection comme immuable. Pour que les orphelins soient supprimés, vous devez d'abord les rendre orphelins, ce qui signifie les retirer de la collection, ce qui signifie le faire muter.