NHibernate:proprietà di disidratazione dell'errore - Che diavolo è questo?

NHibernate:proprietà di disidratazione dell'errore - Che diavolo è questo?

È probabile che nhibernate non mostri la corretta proprietà di errore, controlla le proprietà adiacenti nel file di mappatura, cercando errori nella relazione tra i tipi di dati dal tuo database e i tipi di dati da .net o colonne ripetute nelle proprietà... controlla anche questo link Fluent NHibernate - IndexOutOfRange


Dovresti controllare la mappatura CFAPTransaction, sembra che tu voglia specificare un fornitore per ogni transazione. In questo caso la tua mappatura deve essere come sotto il codice.

public CFAPTransactionMap()
{
  HasOne(x => x.Vendor).ForeignKey("VendorId").Cascade.All();
  ...
}

Nel mio caso era una specifica di identità mancante su SQL-Server.

Oggetto semplice:

public class Employee
{
    public virtual int ID { get; set; }
}

Mappatura:

public class EmployeeMap : ClassMapping<Employee>
{
    public EmployeeMap()
    {
        Id(x => x.ID, map => { map.Generator(Generators.Identity); map.UnsavedValue(0); });
    }
}

SQL:

Ecco la colonna ID con il vincolo della chiave primaria.

E qui puoi vedere la specifica dell'identità mancante, che sta causando il problema.

Per risolvere il problema, devi specificare la colonna ID come IDENTITY cioè

CREATE TABLE EMPLOYEE
(
    ID int NOT NULL IDENTITY(0, 1)
);