nhibernate mapping: A collection with cascade=“all-delete-orphan” was no longer referenced

后端 未结 3 601
北恋
北恋 2020-12-16 12:50

I am having some probs with my fluent mappings. I have an entity with a child collection of entities i.e Event and EventItems for example.

If I set my cascade mappin

3条回答
  •  借酒劲吻你
    2020-12-16 13:18

    You need to map _EventItems using an access strategy so that NHibernate access the private member instead of the property. You're getting this error because the collection reference is changed when the list is copied to a new List in _EventItems.ToList(). Try this:

    public class EventMap : ClassMap
    {
        public EventMap()
        {
            Id(x => x.Id, "Id")
                .UnsavedValue("00000000-0000-0000-0000-000000000000")
                .GeneratedBy.GuidComb();
    
            Map(x => x.Name);
            HasMany(x => x.EventItems)
                .Access.PascalCaseField(Prefix.Underscore)
                .Inverse()
                .KeyColumn("EventId")
                .AsBag()
                .Cascade.AllDeleteOrphan();
            }
        }
    }
    

提交回复
热议问题