2010-12-14 62 views
2

Est-il possible de mapper une classe avec chaque propriété stockée en tant que ligne dans la table, et non une colonne. Le scénario est où nous persistons options globales à la base de données. Nous stockons les options dans une classe 'Options' qui a une propriété par option, à savoir "Expand Menu", "Save on Exit" etc.Propriétés de la classe de mappage NHibernate vers des lignes et non des colonnes

Plutôt que de stocker chaque option dans sa propre colonne de table, nous aimerions simplement avoir une table avec chacune des propriétés de classe stockées comme une nouvelle ligne, identifiée par un Enum.

Est-ce possible?

(C# WinForms)

Répondre

1

L'utilisation de NHibernate EntityMode.Map pourrait aider à résoudre ce problème. Cela signifie que vous devrez peut-être mettre vos options globales dans une collection Dictionary, mais vous pouvez toujours implémenter une classe Option qui résume le sous-jacent Dictionary. NHibernate offre la possibilité de mapper dynamiquement un dictionnaire à une table. Voir la référence de NHibernate sur Dynamic Models

+0

Wow, n'avait jamais entendu parler de ça! Cela semble vraiment utile! –