2017-06-14 78 views
0

可以在任何一個檢查這個屬性和它的映射,以及爲什麼它觸發這個錯誤給我解釋一下。Cascade.AllDeleteOrphan()。只讀()不工作

注意 當我評論.ReadOnly()它不會觸發這個錯誤,相同的,如果我改變從AllDeleteOrphan()級聯角色要All()

這裏是我的代碼

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

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

這是錯誤,我得到

NHibernate.AssertionFailure:爲孤兒沒有收集快照 NHibernate.Engine.Cascade.DeleteOrphans(字符串的entityName, IPersistentCollection PC)在 NHibernate的刪除 在NHibernate.Engine.CollectionEntry.GetOrphans(字符串的entityName, IPersistentCollection集合) .Engine.Cascade.CascadeCollectionElements(對象的父, 對象的孩子,CollectionType collectionType,CascadeStyle風格,ITYPE elemType,任何對象,布爾isCascadeDeleteEnabled)在

回答

1

您正在嘗試將兩個不兼容的設置。

流利的收藏ReadOnly確實mutable="false"實際NHibernate的映射。該選項將集合聲明爲不可變的。對於有孤兒被刪除,您需要先孤立他們,這意味着從收集,這意味着它變異刪除它們。