2009-12-08 3 views
0

J'ai un objet de domaine qui a deux propriétés Uri qui doivent être conservées dans une table Urls contenant plusieurs parties de l'Uri à partir de laquelle les propriétés devront être réassemblées après la récupération. Je peux stocker les propriétés assez bien, mais comment puis-je dire à NHibernate comment recréer la propriété Uri? Vous ne pouvez pas définir la plupart des propriétés de l'objet Uri directement. Au contraire, l'URL doit être assemblée et transmise à un constructeur Uri.NHibernate persist System.Uri

Répondre

2

Personnellement, je ne trouve pas le type Uri être super utile, mais il y a 2 options que je peux penser:

  1. Créer un nouveau type d'utilisateur en mettant en œuvre IUserType (voir http://intellect.dk/post/Implementing-custom-types-in-nHibernate.aspx - recherche pour la mise en œuvre Uri il est à peu près à mi-chemin)
  2. Créez une propriété de chaîne protégée mappée dans NHibernate et entourez-la d'un Uri public.

MISE À JOUR

Je n'ai pas joué avec cela, mais étant donné que vous cherchez à cartographier les propriétés de l'Uri Je pense que vous voulez regarder la mise en œuvre ICompositeUserType au lieu de IUserType. Voir cette publication pour une idée (pas basé sur Uri mais peut être bon pour les pointeurs) http://www.lostechies.com/blogs/rhouston/archive/2008/03/23/mapping-timestamp-data-using-nhibernate-s-icompositeusertype.aspx

+0

Aucune des deux solutions ne fonctionne, car j'ai besoin des parties individuelles de l'URL stockées en tant que colonnes dans la base de données pour analyse ultérieure. – Chris

+0

Ah, j'ai raté cette partie, désolé. Est-ce que l'intention est alors de récupérer ou de rechercher sur la base d'un segment de l'uri? C'est à dire. d'obj o où o.Uri.Host == 'foo'? –

Questions connexes