NHibernate: Błąd odwadniania własności - Co to do cholery jest?

Robię dość skomplikowaną transakcję NHibernate w systemie finansowym, tworząc płatność, rejestrując wpisy księgi, sprawdzając, czy płatność jest całkowitą kwotą faktury, jeśli tak, zaznaczając fakturę jako zapłaconą w całości itd. , dużo fajnych rzeczy. Oczywiście musi to nastąpić w ramach jednej transakcji.

Gdy próbuję zatwierdzić zmianę w sesji, pojawia się następujący błąd:

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

Googling nie przyniósł wielu rekordów. Czy ktoś może mi powiedzieć, co to znaczy i gdzie muszę skoncentrować swoje wysiłki związane z debugowaniem?

AKTUALIZACJA

Na żądanie znajduje się pełny komunikat o błędzie:

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

NHibernate.HibernateException: Nie można rozwiązać właściwości: APVendorId w NHibernate.Tuple.Entity.EntityMetamodel.GetPropertyIndex (String propertyName) w NHibernate.Tuple.Entity.AbstractEntityTuplizer.GetPropertyValue (Object entity, String propertyPath) w NHibernate.Persister.Entity.AbstractEntityPersister. GetPropertyValue (Object obj, String propertyName, EntityMode entityMode) w NHibernate.Type.EntityType.GetIdentifier (wartość obiektu, sesja ISessionImplementor) w NHibernate.Type.ManyToOneType.NullSafeSet (IDbCommand st, wartość obiektu, indeks Int32, Boolean [] setable, ISessionImplementor session) w NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (identyfikator obiektu, pola Object [], Object rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrukcja IDbCommand, sesja ISessionImplementor, indeks Int32) - - Koniec śledzenia stosu wyjątków wewnętrznych --- w NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (identyfikator obiektu, pola Object [], Object rowId, Boolea n [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrukcja IDbCommand, sesja ISessionImplementor, indeks Int32) w NHibernate.Persister.Entity.AbstractEntityPersister.Insert (Object id, pola Object [], Boolean [] notNull, Int32 j , SqlCommandInfo sql, Object obj, sesja ISessionImplementor) w NHibernate.Persister.Entity.AbstractEntityPersister.Insert (Object id, field [], Object obj, ISessionImplementor session) w NHibernate.Action.EntityInsertAction.Execute () w NHibernate.EngityInsertAction.Execute () w NHibernate.Engity. ActionQueue.Execute (plik wykonywalny IExecutable) w NHibernate.Engine.ActionQueue.ExecuteActions (lista IList) w NHibernate.Engine.ActionQueue.ExecuteActions () w NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions (sesja IEventSource) w NHibernate.Event.Default (IEventSource session) w NHibernate.Event.Default. DefaultFlushEventListener.OnFlush (zdarzenie FlushEvent) w NHibernate.Impl.SessionImpl.Flush () w NHibernate.Transaction.AdoTransaction.Commit () w C3.DataModel.Repositories.NHUnitOfWork.Save () w C: projekty C3 \ t taModel.Generated Wygenerowano NHibernateRepositories.generated.cs: linia 2659 w C3.WebUI.Areas.Finance.Controllers.AccountsPayableController.CreatePayment (model CreatePaymentModel) w C: projekty C3 C3.WebUI Obiekty Finansowe Kontrolery AccountsPayableController.cs: linia 434

AKTUALIZACJA Wrzucając NHibernate w tryb DEBUG, otrzymuję kilka takich rzeczy:

processing cascade NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction dla: C3.DataModel.APVendor cascade NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction dla kolekcji: C3.DataModel.APVendor.Transactions done cascade NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction dla kolekcji: C3.DataModel. APVendor.Transactions done processing cascade NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction dla: C3.DataModel.APVendor NHibernate.Event.Default.AbstractFlushingEventListener ERROR Nie można zsynchronizować stanu bazy danych z sesją NHibernate.PropertyValueException: Błąd wartości właściwości odwadniania dla C3.DataModel.CFAPTransaction. Dostawca ---> NHibernate.HibernateException: Nie można rozwiązać właściwości: APVendorId w NHibernate.Tuple.Entity.EntityMetamodel.GetPropertyIndex (String propertyName) w NHibernate.Tuple.Entity.AbstractEntityTuplizer.GetPropertyValue (Object entity, String propertyPath) w NHibernate.Persister .Entity.AbstractEntityPersister.GetProp ertyValue (Object obj, String propertyName, EntityMode entityMode) w NHibernate.Type.EntityType.GetIdentifier (wartość obiektu, sesja ISessionImplementor) w NHibernate.Type.ManyToOneType.NullSafeSet (IDbCommand st, wartość obiektu, indeks Int32, Boolean [] setable, ISessionImplementor session) w NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (identyfikator obiektu, pola Object [], Object rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrukcja IDbCommand, sesja ISessionImplementor, indeks Int32) - - Koniec śledzenia stosu wyjątków wewnętrznych --- w NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (identyfikator obiektu, pola Object [], Object rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrukcja IDbCommand, Sesja ISessionImplementor, indeks Int32) w NHibernate.Persister.Entity.AbstractEntityPersister.Insert (Object id, pola [], Boolean [] notNull, Int32 j, SqlCommandInfo sql, Object obj, sesja ISessionImplementor) w NHiberna te.Persister.Entity.AbstractEntityPersister.Insert (identyfikator obiektu, pola Object [], obiekt Object, sesja ISessionImplementor) w NHibernate.Action.EntityInsertAction.Execute () w NHibernate.Engine.ActionQueue.Execute (plik wykonywalny IExecutable) w NHibernate.Engine .ActionQueue.ExecuteActions (lista IList) w NHibernate.Engine.ActionQueue.ExecuteActions () w NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions (sesja IEventSource) C3.WebUI.Areas.Finance.Controllers.AccountsPayableController ERROR C3.WebUI.Arec. Finance.Controllers.AccountsPayableController: Brak dodatkowych informacji. NHibernate.PropertyValueException: Błąd odwadniania wartości właściwości dla C3.DataModel.CFAPTransaction.Vendor ---> NHibernate.HibernateException: Nie można rozwiązać właściwości: APVendorId w NHibernate.Tuple.Entity.EntityMetamodel.GetPropertyIndex (String propertyName) w NHibernate.Tuple.Entity .AbstractEntityTuplizer.GetPropertyValue (Object entity, String propertyPath) w NHibernate.Persister.Entity.AbstractEntityPersister.GetPropertyValue (Object obj, String propertyName, EntityMode entityMode) w NHibernate.Type.EntityType.GetIdentifier (wartość obiektu, sesja ISessionImplementor) w NHibernate.Type .ManyToOneType.NullSafeSet (IDbCommand st, wartość Object, indeks Int32, możliwość ustawienia Boolean [], sesja ISessionImplementor) w NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Object id, pola Object [], Object rowId, Boolean [] includeProperty, Boolean, Boolean [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrukcja IDbCommand, sesja ISessionImplementor, indeks Int32) --- Koniec śledzenia stosu wyjątków wewnętrznych --- w NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Object id, pola Object [], Object rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrukcja IDbCommand, sesja ISessionImplementor, indeks Int32) w NHibernate.Persister .Entity.AbstractEntityPersister.Insert (Object id, field [], Boolean [] notNull, Int32 j, SqlCommandInfo sql, Object obj, sesja ISessionImplementor) w NHibernate.Persister.Entity.AbstractEntityPersister.Insert (Object id, Object [] fields , Object obj, sesja ISessionImplementor) w NHibernate.Action.EntityInsertAction.Execute () w NHibernate.Engine.ActionQueue.Execute (plik wykonywalny IExecutable) w NHibernate.Engine.ActionQueue.ExecuteActions (lista IList) w NHibernate.Engine.ActionQueue.ExecuteActions ( ) w NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions (sesja IEventSource) w NHibernate.Event.Default.DefaultFlushEventListener.OnFlush (zdarzenie FlushEvent) w NHibernate.Impl.SessionImpl.Flush () w NHiber nate.Transaction.AdoTransaction.Commit () w C3.DataModel.Repositories.NHUnitOfWork.Save () w C: projekty C3 C3.DataModel.Generated Wygenerowano NHibernateRepositories.generated.cs: linia 2659 w C3.WebUI. Areas.Finance.Controllers.AccountsPayableController.CreatePayment (model CreatePaymentModel) w C: C3 C3.WebUI Źródła Kontrolery AccountsPayableController.cs: linia 434

Nie wydaje się, aby miało to miejsce podczas odpytywania bazy danych. Mam przeczucie, że mam problemy ze stworzeniem kilku obiektów, powiązaniem ich, a następnie próbą ich utrwalenia, ale to jest zwykłe przypuszczenie.

questionAnswers(4)

yourAnswerToTheQuestion