Sto lavorando con un sistema legacy che sto sperimentando con l'aggiunta di NHibernate. Ho classe che ho bisogno di essere mappato su una tabella, ma ha molti metodi esistenti che non sono virtuali.Qual è l'impatto di lazy = "false" sull'elemento di classe della mappatura di NHibernate?
Ho scoperto che posso ottenere NHibernate per caricare correttamente il mapping anche con i metodi non virtuali presenti se imposto l'attributo "lazy" sull'elemento classe del file di mapping su "false". Mi chiedo quale impatto avrà questo sul mio uso di NHibernate con questa classe.
Capisco il significato del caricamento non pigro sulle raccolte che appartengono a un oggetto, ma non sono chiaro sul significato di ciò che sarebbe il carico pigro o avido di una classe. Ciò significa che tutte le raccolte appartenenti a quell'oggetto sarebbero caricate con impazienza? O significa che NHibernate non utilizza più un proxy dinamico al posto della classe effettiva? Qualcos'altro?
Inoltre, qual è il modo migliore di agire qui? L'impostazione del valore lazy = false è sconsigliabile? Devo creare un'interfaccia che la classe implementa e quindi mapparla alla tabella? O dovrei mordere il proiettile e contrassegnare tutti i metodi esistenti sulla classe virtuale?
Grazie in anticipo per qualsiasi consiglio!
Quindi, per essere chiari prima di contrassegnare la risposta come accettata, l'impostazione lazy = false a livello di classe non causerà il caricamento di tali raccolte di classe? –
No, l'attributo lazy a livello di classe non ha alcun impatto sull'attributo lazy ai livelli di raccolta. (Ho delle classi in cui specifico lazy = false a livello di classe e lazy = false a livello di raccolta) –
Grazie, Frederik! Molto utile! –