[NHibernate] Mapping di un dictionary

Non mi stancherò mai di decantare la versatilità di NHibernate nel supportare domain model eterogenei. Esempio pratico: il nostro sito internet ha un sacco di pagine pressoché statiche, tipo il classico "Chi siamo", "Mission dell'Azienda", ecc.ecc.

Vogliamo permettere all'amministratore di inserire questi dati nel DB, ma vogliamo anche lasciarci la strada aperta ad aggiunte future, così se domani il cliente si sveglia e vuole anche una bella pagina con i contatti, possiamo aggiungerla senza modificare lo schema.

Un'idea può essere quella di contenere tutti questi dati all'interno di un bel Dictionary, ma come lo mappiamo con NHibernate?

Presto detto, basta utilizzare il tag <map> come segue:

1 <map name="CustomElements" generic="true" table="WebsiteCustomElements"> 2 <key column="ParentId" /> 3 4 <index column="ItemName" type="string" /> 5 <element column="Value" type="string" length="3000" /> 6 </map>

In questo modo NHibernate utilizzerà una tabella WebsiteCustomElements con le colonne ParentId, ItemName e Value per persistere il contenuto del nostro Dictionary.

Technorati tags:
6 Comments Filed Under [ NHibernate ]

Comments

# re: [NHibernate] Mapping di un dictionary
Gravatar Era ora, pensavo che ci abbandonavi per Linq .. ;-)
Left by raffaeu on 05/02/2008 9.54
# re: [NHibernate] Mapping di un dictionary
Gravatar Io ho utilizzato dictionary per la localizzaione :D. per quanto riguarda linq è molto bello, ma non ha a che fare troppo con nhibernate, il concorrente di nhibernate è l'entity framework, o al massimo il linq to sql.
vai da ayende e puoi prendere il linq to nhibernate :D

alk.
Left by Gian Maria on 05/02/2008 13.36
# re: [NHibernate] Mapping di un dictionary
Gravatar Linq2NHibernate è un progettino più dimostrativo che altro, non lo sceglierei mai per una real-app; tanto per dirne una, non supporta i vincoli sul Count di una collection.

Per quanto riguarda EF, beh, alcune scelte architetturali mi lasciano perplesso, staremo a vedere.

Ciao :)
Left by Marco De Sanctis on 05/02/2008 13.41
# re: [NHibernate] Mapping di un dictionary
Gravatar Linq2NHibernate, semplicemente, non funziona su mapping "real world". Purtroppo. Ahinoi. Peccato. Azzo. Uffa. Grrrr. etc etc...
Left by Andrea Saltarello on 05/02/2008 15.09
# re: [NHibernate] Mapping di un dictionary
Gravatar Già, credo che se riuscissimo ad implementare la noiosissima IQueryable in maniera valida e far funzionare *bene* LINQ con NH, potremmo anche conquistare il mondo. :D
Left by Marco De Sanctis on 05/02/2008 15.15
# re: [NHibernate] Mapping di un dictionary
Gravatar Linq to NHibernate era fatto da ayende quando ancora in giro si trovava poco. Infatti in un post ayende lamentava le poche informazioni trovate per fare il provider per bene.
Ogni tanto lo riaggiorna un poco ma mai in maniera definitiva, sarebbe carino magari scrivergli e mettere il tutto su codeplex e piano piano trovare gente per metterci le mani..perchè a me un linq to nh farebbe veramente piacere.

alk.
Left by Gian Maria on 05/02/2008 16.03

Leave Your Comment

Title*
Name*
Email (never displayed)
 (will show your gravatar)
Url
Comment*

Please add 8 and 3 and type the answer here:

Preview Your Comment.