NHibernate持久化System.Uri

时间:2009-12-08 13:13:53

标签: nhibernate

我有一个域对象,其中有几个Uri属性需要持久保存到Urls表中,该表包含Uri的几个部分,在检索后需要重新组装这些属性。我可以很好地存储属性,但是如何告诉NHibernate如何重新创建Uri属性?您无法直接设置大多数Uri对象的属性。相反,必须组装url并将其传递给Uri构造函数。

1 个答案:

答案 0 :(得分:2)

我个人认为Uri类型不是很有用,但我可以想到两个选项:

  1. 通过实现IUserType创建一个新用户类型(请参阅http://intellect.dk/post/Implementing-custom-types-in-nHibernate.aspx - 搜索Uri实现大约一半)
  2. 创建一个受保护的字符串属性,该属性在NHibernate中映射并围绕它包装公共Uri。
  3. <强>更新

    我没有玩过这个,但鉴于你想要映射Uri的属性,我想你想看一下实现ICompositeUserType而不是IUserType。请参阅这篇文章了解一个想法(不是基于Uri,但可能适合指针)http://www.lostechies.com/blogs/rhouston/archive/2008/03/23/mapping-timestamp-data-using-nhibernate-s-icompositeusertype.aspx