Ho una classe, Ordine, che insisto a un database utilizzando NHibernate. C'è una cartella più in basso nell'applicazione web che contiene un oggetto che eredita dall'Ordine, per i nostri scopi, possiamo chiamarlo CustomOrder. Uso CustomOrder per posizionare alcune proprietà sull'oggetto Order per scopi di interfaccia utente. Le proprietà non devono essere effettivamente salvate nel database.NHibernate Inherited classe, ma non c'è bisogno di persistere
quando passo la classe CustomOrder al mio metodo generico salvo che vuole solo in un oggetto Ordine, NHibernate si lamenta:
Unknown classe entità: CustomOrder.
Non ho bisogno di persistere i campi personalizzati al database, ma mi piacerebbe mantenere questa struttura di ereditarietà. Sto pensando nei termini sbagliati o facendo qualcosa che non dovrei fare?
Salva codice
public object Save(Order obj, object userID) {
Order o = (Order)obj;
ISession session = NHibernateHelper.GetCurrentSession();
ITransaction tx = session.BeginTransaction();
session.Save(o);
Dopo il caso nella prima riga del metodo, .NET identifica ancora come OrdineCliente.
+1 questo è esattamente quello che stavo per suggerire (e l'unico modo per farlo). –