Salve a tutti, mi scuso se il titolo non è molto chiaro ma non poteva essere più lungo.
Sto sviluppando una piccola applicazione in C# utilizzando NHibernate ed un pattern MVC.
Quando effettuo il salvataggio di un oggetto Assegnazione, al quale associo una Commessa, un Articolo ed un Utente, recuperati tutti da chiamate dirette ad NHibernate mediante "session.Get(...), il metodo di salvataggio non va a buon fine perchè si genera l'eccezione
"not-null property references a null or transient value" per il solo oggetto Utente.
Il problema è che la sua struttura e la relativa mappatura su .hbm.xml mi pare esattamente identica a quella degli altri due oggetti (che non danno problemi visto che l'errore è iniziato quando ho deciso di aggiungere l'utente all'assegnazione).
Il mio model è così strutturato (lo dettaglio perchè credo sia importante per il problema)
public class Assegnazione
{
public virtual int id { get; private set; }
public virtual Int32 version { get; private set; }
public virtual Commessa commessa { get; set; }
public virtual Articolo articolo { get; set; }
public virtual Utente utente { get; set; }
//altre proprietà di tipo string, DateTime, bool
}
public class Commessa
{
public virtual int id { get; private set; }
public virtual Int32 version { get; private set; }
public virtual Cliente cliente { get; set; }
public virtual StatoCommessa stato { get; set; }
public virtual IList<Assegnazione> assegnazioni { get; set; }
public virtual IList<Missione> missioni { get; set; }
public virtual IList<CostoQualificaCommessa> costiQualificaCommessa { get; set; }
//Altre proprietà di tipo string, DateTime, bool
}
public class Utente
{
public virtual int id { get; private set; }
public virtual Int32 version { get; private set; }
public virtual Qualifica qualifica { get; set; }
public virtual string user { get; set; }
public virtual string password { get; set; }
public virtual IList<DettaglioMissione> dettagliMissione { get; set; }
public virtual IList<MovimentoAttrezzo> movimentiAttrezzi { get; set; }
public virtual IList<Presenza> presenze { get; set; }
public virtual IList<Cartellino> cartellini { get; set; }
public virtual IList<Assegnazione> assegnazioni { get; set; }
//Altre proprietà di tipo string, DateTime, bool
}
I relativi file di mappatura sono i seguenti
Non ho grandi esperienze con NHibernate e questa cosa mi sta facendo impazzire oltre che perdere una montagna di ore di lavoro...
Vi ringrazio in anticipo. Alex