NHibernate Web Application - Gestione Preferenze utente
-
20-09-2019 - |
Domanda
Ho un'applicazione web con uno strato di accesso ai dati NHibernate. Ho un gran numero di preferenze degli utenti che possono essere memorizzati, questi sono principalmente booleani, ad esempio registrando che una finestra di dialogo è stato respinto e non deve essere mostrato ancora una volta.
Il problema è che con NHibernate ho bisogno di aggiungere al mio schema del database, e aggiungere una proprietà alla classe persistente ogni volta che una nuova finestra di dialogo si aggiunge a registrare se è stato licenziato o meno.
Ci deve essere un modo più semplice. Di cosa si tratta?
Soluzione
Un'altra opzione è quella di leggere questo Inserisci da Ayende, sostanzialmente consentendo campi dinamici
Un tema comune in molte applicazione è la necessità di sostenere custom / dinamica campi. In altre parole, il sistema amministrazione può decidere che il Cliente ha bisogno di avere un paio di campi aggiuntivi che non fanno parte della linea principale sviluppo.
Anche a leggere l'ultimo commento di Ayende
- Si può mettere una collezione in una proprietà dinamica.
- È possibile modificare la configurazione programatically
Modifica Per qualche motivo ho appena realizzato che ho risposto a questa domanda che è più di un anno! Hai idea di come sono arrivato qui! La risposta è ancora una buona uno, però
Altri suggerimenti
Si potrebbe utilizzare una tabella di impostazioni per memorizzare le preferenze e aggiungere un valore per ogni finestra di dialogo:
Impostazioni Tabella Id, UserId, DialogName, Valore
1, 1, FirstDialog, True
2, 1, SecondDialog, False
3, 2, FirstDialog, False
4, 2, SecondDialog, False