NHibernate: Erro desidratando a propriedade - O que diabos é isso?

Estou fazendo uma transação NHibernate bastante complexa em um sistema financeiro, criando um pagamento, registrando as entradas do razão, verificando se o pagamento é o valor total de uma fatura, se marcando a fatura como paga integralmente, etc. muita coisa divertida. Naturalmente, isso tem que acontecer dentro de uma única transação.

Quando tento confirmar a alteração na sessão, recebo o seguinte erro:

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

Pesquisando isso não apareceu muitos registros. Alguém pode me dizer o que isso significa e onde eu preciso focar meus esforços de depuração?

ATUALIZAR

Por solicitação, aqui está a mensagem de erro completa:

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

NHibernate.HibernateException: Não é possível resolver a propriedade: APVendorId em NHibernate.Tuple.Entity.EntityMetamodel.GetPropertyIndex (String propertyName) em NHibernate.Tuple.Entity.AbstractEntityTuplizer.GetPropertyValue (Object entity, String propertyPath) em NHibernate.Persister.Entity.AbstractEntityPersister. GetPropertyValue (objeto obj, String propertyName, EntityMode entityMode) em NHibernate.Type.EntityType.GetIdentifier (valor do objeto, sessão ISessionImplementor) em NHibernate.Type.ManyToOneType.NullSafeSet (IDbCommand st, valor do objeto, índice Int32, booleano [] configurável, ISessionImplementor session) em NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Object id, Object [] campos, Object rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrução IDbCommand, sessão ISessionImplementor, índice Int32) - - Fim do rastreamento de pilha de exceção interna --- em NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Object id, Object [] fields, Object rowId, Boolea n [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrução IDbCommand, sessão ISessionImplementor, índice Int32) em NHibernate.Persister.Entity.AbstractEntityPersister.Insert (ID de objeto, campos Object [], Boolean [] notNull, Int32 j , SqlCommandInfo sql, Object obj, sessão ISessionImplementor) em NHibernate.Persister.Entity.AbstractEntityPersister.Insert (Id de objeto, campos Object [], objeto obj, sessão ISessionImplementor) em NHibernate.Action.EntityInsertAction.Execute () em NHibernate.Engine. ActionQueue.Execute (IExecutable executable) em NHibernate.Engine.ActionQueue.ExecuteActions (lista IList) em NHibernate.Engine.ActionQueue.ExecuteActions () em NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions (sessão IEventSource) em NHibernate.Event.Default. DefaultFlushEventListener.OnFlush (FlushEvent event) em NHibernate.Impl.SessionImpl.Flush () em NHibernate.Transaction.AdoTransaction.Commit () em C3.DataModel.Repositories.NHUnitOfWork.Save () em C: \ projects \ C3 \ C3.Da taModel.Generated \ Generated \ NHibernateRepositories.generated.cs: linha 2659 em C3.WebUI.Areas.Finance.Controllers.AccountsPayableController.CreatePayment (modelo CreatePaymentModel) em C: \ projetos \ C3 \ C3.WebUI \ Areas \ Finance \ Controllers \ AccountsPayableController.cs: linha 434

ATUALIZAR Jogando NHibernate no modo DEBUG, eu recebo um monte de coisas assim:

cascata de processamento NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction para: C3.DataModel.APVendor cascata NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction para coleta: C3.DataModel.APVendor.Transactions done cascade NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction para coleção: C3.DataModel. APVendor.Transactions done processing cascade NHibernate.Engine.CascadingAction + SaveUpdateCascadingAction para: C3.DataModel.APVendor NHibernate.Event.Default.AbstractFlushingEventListener ERROR Não foi possível sincronizar o estado do banco de dados com a sessão NHibernate.PropertyValueException: Erro ao desidratar o valor da propriedade para C3.DataModel.CFAPTransaction. Fornecedor ---> NHibernate.HibernateException: Não é possível resolver a propriedade: APVendorId em NHibernate.Tuple.Entity.EntityMetamodel.GetPropertyIndex (String propertyName) em NHibernate.Tuple.Entity.AbstractEntityTuplizer.GetPropertyValue (Object entity, String propertyPath) em NHibernate.Persister .Entity.AbstractEntityPersister.GetProp ertyValue (Objeto obj, Cadeia propertyName, EntityMode entityMode) em NHibernate.Type.EntityType.GetIdentifier (Valor do objeto, sessão ISessionImplementor) em NHibernate.Type.ManyToOneType.NullSafeSet (IDbCommand st, valor do objeto, índice Int32, booleano [] configurável, ISessionImplementor session) em NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (Object id, Object [] campos, Object rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrução IDbCommand, sessão ISessionImplementor, índice Int32) - - Fim do rastreamento de pilha de exceção interna --- em NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (ID de objeto, campos Object [], objeto rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrução IDbCommand, Sessão ISessionImplementor, índice Int32) em NHibernate.Persister.Entity.AbstractEntityPersister.Insert (ID do objeto, campos Object [], Boolean [] notNull, Int32 j, SqlCommandInfo sql, objeto obj, sessão ISessionImplementor) em NHiberna te.Persister.Entity.AbstractEntityPersister.Insert (ID do objeto, campos Object [], objeto obj, sessão ISessionImplementor) em NHibernate.Action.EntityInsertAction.Execute () em NHibernate.Engine.ActionQueue.Execute (executável executável) em NHibernate.Engine .ActionQueue.ExecuteActions (lista IList) em NHibernate.Engine.ActionQueue.ExecuteActions () em NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions (sessão IEventSource) C3.WebUI.Areas.Finance.Controllers.AccountsPayableController ERRO C3.WebUI.Areas. Finance.Controllers.AccountsPayableController: Nenhuma informação adicional. NHibernate.PropertyValueException: Erro de desidratação do valor da propriedade para C3.DataModel.CFAPTransaction.Vendor ---> NHibernate.HibernateException: não é possível resolver a propriedade: APVendorId em NHibernate.Tuple.Entity.EntityMetamodel.GetPropertyIndex (String propertyName) em NHibernate.Tuple.Entity .AbstractEntityTuplizer.GetPropertyValue (Object entity, String propertyPath) em NHibernate.Persister.Entity.AbstractEntityPersister.GetPropertyValue (objeto obj, String propertyName, EntityMode entityMode) em NHibernate.Type.EntityType.GetIdentifier (valor do objeto, sessão ISessionImplementor) em NHibernate.Type .ManyToOneType.NullSafeSet (IDbCommand st, valor do objeto, índice Int32, booleano [] configurável, sessão ISessionImplementor) em NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (ID do objeto, campos Object [], objeto rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrução IDbCommand, sessão ISessionImplementor, índice Int32) --- Fim do rastreamento de pilha de exceção interna --- em NHibernate.Persister.Entity.AbstractEntityPersister.Dehydrate (ID do objeto, campos Object [], objeto rowId, Boolean [] includeProperty, Boolean [] [] includeColumns, tabela Int32, instrução IDbCommand, sessão ISessionImplementor, índice Int32) em NHibernate.Persister .Entity.AbstractEntityPersister.Insert (ID do objeto, campos Object [], Boolean [] notNull, Int32 j, SqlCommandInfo sql, objeto obj, sessão ISessionImplementor) em NHibernate.Persister.Entity.AbstractEntityPersister.Insert (ID do objeto, campos Object [] Objeto, sessão ISessionImplementor) em NHibernate.Action.EntityInsertAction.Execute () em NHibernate.Engine.ActionQueue.Execute (executável executável) em NHibernate.Engine.ActionQueue.ExecuteActions (lista IList) em NHibernate.Engine.ActionQueue.ExecuteActions ( ) em NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions (sessão IEventSource) em NHibernate.Event.Default.DefaultFlushEventListener.OnFlush (FlushEvent event) em NHibernate.Impl.SessionImpl.Flush () em NHiber nate.Transaction.AdoTransaction.Commit () em C3.DataModel.Repositories.NHUnitOfWork.Save () em C: \ projects \ C3 \ C3.DataModel.Generated \ Generated \ NHibernateRepositories.generated.cs: linha 2659 em C3.WebUI. Areas.Finance.Controllers.AccountsPayableController.CreatePayment (modelo CreatePaymentModel) em C: \ projetos \ C3 \ C3.WebUI \ Áreas \ Finanças \ Controllers \ AccountsPayableController.cs: linha 434

Não parece que isso está ocorrendo ao consultar o banco de dados. Tenho a sensação de que tenho problemas em criar um monte de objetos, relacioná-los e, em seguida, tentar persistir, mas é um palpite.

questionAnswers(4)

yourAnswerToTheQuestion