I've got into situation where my mappings and domain are throwing to me a FatalExecutionEngineError. I'll be posting the code here, hoping that someone can help me understand, I'm doing "unnatural" things with NHibernate or it's a bug somewhere...
The exact error I'm getting is: *FatalExecutionEngineError was detected* Message: The runtime has encountered a fatal error. The address of the error was at 0xf8a213a3, on thread 0x660. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack. Example is stripped down to minimum from our project. Names are awkward, scenario probably looks silly, but that's extracted from our real domain. I'm showing only relevant part of classes. For full VS project see http://github.com/vcaraulean/NHibernate.FEEE . *Domain*: two classes with one-to-many relation. Classes are "aggregate roots", modified individually but in same session/transaction scope. Using double dispatch to keep aware one of another. public class First { public First(Second second) { Second = second; } private Second second; public virtual Second Second { get { return second; } private set { second = value; second.AddFirst(this); } } } public class Second { private readonly List<First> collectionOfFirsts; public Second() { collectionOfFirsts = new List<First>(); } public virtual IEnumerable<First> CollectionOfFirsts { get { return collectionOfFirsts; } } public virtual void AddFirst(First first) { collectionOfFirsts.Add(first); *// Here FatalExecutionEngineError is thrown* } } *Mapping files, FluenNHibernate:* public class FirstPersistenceMap : ClassMap<First> { public FirstPersistenceMap() { Id(x => x.Id); References(x => x.Second); } } public class SecondPersistenceMap : ClassMap<Second> { public SecondPersistenceMap() { Id(x => x.Id); HasMany(x => x.CollectionOfFirsts) .Access.ReadOnlyPropertyThroughCamelCaseField(); } } *Usage, in unit test:* using (var session = sessionFactory.OpenSession()) using (var tx = session.BeginTransaction()) { var second = new Second(); session.Save(second); var firstClass = new First(second); session.Save(firstClass); } Two questions: - What I'm doing wrong here? - How can I map it so it will work as expected? Thanks! -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
