NHibernate: Fehler beim Dehydrieren von Eigentum - Was zum Teufel ist das?

Ich führe eine ziemlich komplexe NHibernate-Transaktion in einem Finanzsystem durch, erstelle eine Zahlung, zeichne die Buchungen auf und überprüfe, ob die Zahlung der Gesamtbetrag einer Rechnung ist. Wenn ja, markiere ich die Rechnung als vollständig bezahlt usw. viele lustige Sachen. Natürlich muss dies in einer einzigen Transaktion geschehen.

Wenn ich versuche, die Änderung für die Sitzung zu übernehmen, wird die folgende Fehlermeldung angezeigt:

Error dehydrating property value for C3.DataModel.CFAPTransaction.Vendor

Googeln dies hat nicht viele Rekorde aufgetaucht. Kann mir jemand sagen, was dies bedeutet und worauf ich mich beim Debuggen konzentrieren muss?

AKTUALISIEREN

Auf Anfrage hier die vollständige Fehlermeldung:

NHibernate.PropertyValueException: Error dehydrating property v  alue for C3.DataModel.CFAPTransaction.Vendor --->

NHibernate.HibernateException: Eigenschaft kann nicht aufgelöst werden: APVendorId bei NHibernate.Tuple.Entity.EntityMetamodel.GetPropertyIndex (String propertyName) bei NHibernate.Tuple.Entity.AbstractEntityTuplizer.GetPropertyValueers.EntityEntist (Objekt) GetPropertyValue (Object obj, String propertyName, EntityMode entityMode) bei NHibernate.Type.EntityType.GetIdentifier (Object value, Sitzung ISessionImplementor) bei NHibernate.Type.ManyToOneType.NullSafeSet (IDbCommand st, Object value, Index] session) at NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Objekt-ID, Object [] -Felder, Object rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, Int32-Tabelle, IDbCommand-Anweisung, ISessionImplementor-Sitzung, Int32-Index) - - Ende der inneren Ausnahmestapel-Ablaufverfolgung --- bei NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Objekt-ID, Objekt [] -Felder, Objekt-Zeilen-ID, Boolea n [] includeProperty, Boolean [] [] includeColumns, Int32-Tabelle, IDbCommand-Anweisung, ISessionImplementor-Sitzung, Int32-Index) bei NHibernate.Persister.Entity.AbstractEntityPersister.Insert (Objekt-ID, Objekt [] -Felder, Boolean [] notNull, Int32 j , SqlCommandInfo sql, Object obj, ISessionImplementor-Sitzung) bei NHibernate.Persister.Entity.AbstractEntityPersister.Insert (Objekt-ID, Object [] -Felder, Object obj, ISessionImplementor-Sitzung) bei NHibernate.Action.EntityInsertAction.Execute (). ActionQueue.Execute (IExecutable executable) bei NHibernate.Engine.ActionQueue.ExecuteActions (IList list) bei NHibernate.Engine.ActionQueue.ExecuteActions () bei NHibernate.Event.Default.AbstractFlushingEventListener.PerformEx DefaultFlushEventListener.OnFlush (FlushEvent-Ereignis) bei NHibernate.Impl.SessionImpl.Flush () bei NHibernate.Transaction.AdoTransaction.Commit () bei C3.DataModel.Repositories.NHUnitOfWork.Save () in C: \ projects \ Ca \ taModel.Generated \ Generated \ NHibernateRepositories.generated.cs: Zeile 2659 in C3.WebUI.Areas.Finance.Controllers.AccountsPayableController.CreatePayment (CreatePaymentModel-Modell) in C: \ projects \ C3 \ C3.WebUI \ Areas \ Finance \ Controllers \ AccountsPayableController.cs: Zeile 434

AKTUALISIEREN Wenn ich NHibernate in den DEBUG-Modus versetze, bekomme ich ein paar Sachen wie diese:

Verarbeitungskaskade NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction für: C3.DataModel.APVendor-Kaskade NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction für Sammlung: C3.DataModel.APVendor.Transactions done APVendor.Transactions-Verarbeitungskaskade NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction für: C3.DataModel.APVendor NHibernate.Event.Default.AbstractFlushingEventListener ERROR Konnte den Datenbankstatus mit der Sitzung NHibernate.PropertyFlushingEigenschaft nicht synchronisieren. Vendor ---> NHibernate.HibernateException: Die Eigenschaft APVendorId kann nicht aufgelöst werden .Entity.AbstractEntityPersister.GetProp ertyValue (Object obj, String propertyName, EntityMode entityMode) bei NHibernate.Type.EntityType.GetIdentifier (Object value, ISessionImplementor-Sitzung) bei NHibernate.Type.ManyToOneType.NullSafeSet (IDbCommand-St, Object value, Int32-Index B, festlegbar) session) at NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Objekt-ID, Object [] -Felder, Object rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, Int32-Tabelle, IDbCommand-Anweisung, ISessionImplementor-Sitzung, Int32-Index) - - Ende der inneren Ausnahmestapel-Ablaufverfolgung --- bei NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Objekt-ID, Object [] -Felder, Object rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, Int32-Tabelle, IDbCommand-Anweisung, ISessionImplementor-Sitzung, Int32-Index) bei NHibernate.Persister.Entity.AbstractEntityPersister.Insert (Objekt-ID, Object [] -Felder, Boolean [] notNull, Int32 j, SqlCommandInfo-SQL, Object obj, ISessionImplementor-Sitzung) bei NHiberna te.Persister.Entity.AbstractEntityPersister.Insert (Objekt-ID, Objekt [] -Felder, Objektobjekt, ISessionImplementor-Sitzung) bei NHibernate.Action.EntityInsertAction.Execute () bei NHibernate.Engine.ActionQueue.Execute (IExecutable Executable) bei NHibine .ActionQueue.ExecuteActions (IList-Liste) bei NHibernate.Engine.ActionQueue.ExecuteActions () bei NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions (IEventSource-Sitzung) C3.WebUI.Areas.Finance.Controller. Finance.Controllers.AccountsPayableController: Keine zusätzlichen Informationen. NHibernate.PropertyValueException: Fehler beim Dehydratisieren des Eigenschaftswerts für C3.DataModel.CFAPTransaction.Vendor ---> NHibernate.HibernateException: Eigenschaft kann nicht aufgelöst werden: APVendorId bei NHibernate.Tuple.Entity.EntityMetamodel.GetPropertyName.Entible .AbstractEntityTuplizer.GetPropertyValue (Objektentität, String propertyPath) bei NHibernate.Persister.Entity.AbstractEntityPersister.GetPropertyValue (Objektobjekt, String propertyName, EntityMode entityMode) bei NHibernate.Type.EntityType .ManyToOneType.NullSafeSet (IDbCommand st, Objektwert, Int32-Index, Boolean [] einstellbar, ISessionImplementor-Sitzung) bei NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Objekt-ID, Object [] -Felder, Object rowId, Boolean, Boolean [] includeP [] [] includeColumns, Int32-Tabelle, IDbCommand-Anweisung, ISessionImplementor-Sitzung, Int32-Index at NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Objekt-ID, Object [] -Felder, Object rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, Int32-Tabelle, IDbCommand-Anweisung, ISessionImplementor-Sitzung, Int32-Index) at NHibernate.Pers .Entity.AbstractEntityPersister.Insert (Objekt-ID, Objekt [] -Felder, Boolean [] notNull, Int32 j, SqlCommandInfo sql, Objekt obj, ISessionImplementor-Sitzung) bei NHibernate.Persister.Entity.AbstractEntityPersister.Insert (Objekt-ID, Objekt [] , Object obj, ISessionImplementor session) bei NHibernate.Action.EntityInsertAction.Execute () bei NHibernate.Engine.ActionQueue.Execute (IExecutable executable) bei NHibernate.Engine.ActionQueue.ExecuteActions (IList list) bei NHibue.ExecuteAuteActions (IList ) um NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions (IEventSource-Sitzung) um NHibernate.Event.Default.DefaultFlushEventListener.OnFlush (FlushEvent-Ereignis) um NHibernate.Impl.SessionImpl.Flush () um NHib nate.Transaction.AdoTransaction.Commit () um C3.DataModel.Repositories.NHUnitOfWork.Save () in C: \ projects \ C3 \ C3.DataModel.Generated \ Generated \ NHibernateRepositories.generated.cs: Zeile 2659 um C3.WebUI. Areas.Finance.Controllers.AccountsPayableController.CreatePayment (CreatePaymentModel-Modell) in C: \ projects \ C3 \ C3.WebUI \ Areas \ Finance \ Controllers \ AccountsPayableController.cs: Zeile 434

Es scheint nicht, dass dies beim Abfragen der Datenbank auftritt. Ich habe das Gefühl, dass es Probleme gibt, wenn ich eine Reihe von Objekten erstelle, sie in Beziehung setze und dann versuche, sie beizubehalten, aber das ist eine reine Vermutung.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage