Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/nhibernate/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用NHibernate的域类型的自定义转换器_Nhibernate_Orm_Nhibernate Mapping - Fatal编程技术网

使用NHibernate的域类型的自定义转换器

使用NHibernate的域类型的自定义转换器,nhibernate,orm,nhibernate-mapping,Nhibernate,Orm,Nhibernate Mapping,我的域模型使用System.Net.Uri表示URL,使用System.Drawing.Color表示颜色。在db中,URI只是NVARCHAR,颜色是web(十六进制)rgb值 使用NHibernate,是否有一些方法可以使用自定义映射器在这些值之间进行映射 我不需要查询这些项目,但如果可以的话,那就太好了 非常感谢您的帮助。您可以使用。我将它们用于将结果转换为自定义对象的本机查询。在您的情况下,您可以调整get属性以转换为Uri和颜色表示。您可以使用。我将它们用于将结果转换为自定义对象的本机

我的域模型使用System.Net.Uri表示URL,使用System.Drawing.Color表示颜色。在db中,URI只是NVARCHAR,颜色是web(十六进制)rgb值

使用NHibernate,是否有一些方法可以使用自定义映射器在这些值之间进行映射

我不需要查询这些项目,但如果可以的话,那就太好了


非常感谢您的帮助。

您可以使用。我将它们用于将结果转换为自定义对象的本机查询。在您的情况下,您可以调整get属性以转换为Uri和颜色表示。

您可以使用。我将它们用于将结果转换为自定义对象的本机查询。在您的情况下,您可以调整get属性以转换为Uri和颜色表示。

您需要的是用户类型。实现
IUserType
IComplexUserType
(还有一些接口可以满足其他需求)

这里有一些例子:

使用用户类型,可以将任何类映射到任何类型的任意数量的列。实现用户类型意味着实现它们之间的映射

映射可能如下所示:

<property "MyColor" type="ColorUserType">
  <column name="R"/>
  <column name="G"/>
  <column name="B"/>
</property>

您需要的是用户类型。实现
IUserType
IComplexUserType
(还有一些接口可以满足其他需求)

这里有一些例子:

使用用户类型,可以将任何类映射到任何类型的任意数量的列。实现用户类型意味着实现它们之间的映射

映射可能如下所示:

<property "MyColor" type="ColorUserType">
  <column name="R"/>
  <column name="G"/>
  <column name="B"/>
</property>


Wunderbar!工作得很好!NHibernate每天都在好转。。在LINQtoSQL中做这样的事情真是太痛苦了:-)我认为这是一个非常古老的特性。问题是NH有很多特性,但有时很难找到它们。Wunderbar!工作得很好!NHibernate每天都在好转。。在LINQtoSQL中做这样的事情真是太痛苦了:-)我认为这是一个非常古老的特性。问题是NH有很多特性,但有时很难找到它们。