2009-12-18 3 views
1

J'ai une application web avec une couche d'accès aux données NHibernate. J'ai un grand nombre de préférences utilisateur qui peuvent être stockées, ce sont principalement des booléens, par exemple en enregistrant qu'une boîte de dialogue a été fermée et ne devrait plus être affichée. Le problème est qu'avec NHibernate je dois ajouter à mon schéma de base de données, et ajouter une propriété à la classe persistante chaque fois qu'une nouvelle boîte de dialogue est ajoutée pour enregistrer si elle a été fermée ou non.Application Web NHibernate - Gestion des préférences utilisateur

Il doit y avoir un moyen plus facile. Qu'Est-ce que c'est?

+1

Euh ... Ouais mon pote! ... D'où moi venir ici et poser une question en essayant d'établir une meilleure façon de faire les choses! Avez-vous quelque chose de constructif à contribuer, ou est "bleh ... beurk" tout ce que vous pouvez offrir? – reach4thelasers

Répondre

1

Une autre option est de lire ce post par Ayende, ce qui permet essentiellement des champs dynamiques

Un thème commun dans de nombreuses applications est la nécessité de soutenir/personnalisés dynamiques champs. En d'autres termes, le système admin peut décider que le client doit avoir quelques champs supplémentaires qui ne font pas partie du développement de la ligne principale .

également lu le dernier commentaire Ayende

  • Vous pouvez mettre une collection dans une propriété dynamique.
  • Vous pouvez modifier la configuration programatically

Modifier Pour une raison que je viens de réaliser que j'ai répondu à cette question qui est plus d'un an! Je n'ai aucune idée de comment je suis arrivé ici! Réponse est toujours un bon

2

Vous pouvez utiliser une table de paramètres pour enregistrer les préférences et ajouter une valeur pour chaque boîte de dialogue:

Tableau Réglages Id, USERID DialogName, valeur

1, 1, FirstDialog, True

2, 1, SecondDialog, Faux

3, 2, FirstDialog, Faux

4, 2, SecondDialog, False

Questions connexes