NHibernate属性配置

本文关键字:配置 属性 NHibernate | 更新日期: 2023-09-27 18:33:01

在NHibernate中,我有这个配置。

 <property name="Name" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a222222229">
      <column name="Name" />
    </property>

这些意味着什么 ? msconrlib, version, culture, publicKeyToken ? 为什么我们需要这些?我在java env中研究过Hibernate,我从不使用这些标签。

谢谢

NHibernate属性配置

类型描述要用于该属性的 .Net CLR 类型。在本例中为普通字符串。

在这种情况下,您不必指定它。在某些情况下,您需要指定它,例如,当您使用自定义类型时。或者当您想要映射日期时间时。

关于类型各部分的含义:类型是 System.String,它非常精确地描述了程序集名称、区域性和版本。公钥令牌是程序集的强名称的密钥 - 只要使用不同的密钥进行签名,就可以使用重复的程序集名称。

您可以将此映射编写为

 <property name="Name">
      <column name="Name" />
 </property>

<property name="Name" type="String">
      <column name="Name" />
</property>

但是,如果要在某些程序集中使用自定义类型,则需要像现在一样指定是否更详细。

在MS .Net中,它被称为强程序集名称。这是在.Net Framework中识别特定类型的方式。所以这个特定的字符串声明在 4.0 版本中使用 mscorlib 库中的 System.string。对本地化没有偏好。这允许 .Net 使用部署到 GAC - 全局程序集缓存的程序集,该缓存充当系统 dll 的全局目录。