NHibernate属性配置

时间:2012-05-03 19:36:29

标签: c# nhibernate

在NHibernate中,我有这个配置。

 <property name="Name" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a222222229">
      <column name="Name" />
    </property>
这些意味着什么? msconrlib,版本,文化,publicKeyToken?为什么我们需要这些?我在java env中使用过Hibernate,我从不使用这些标签。

由于

2 个答案:

答案 0 :(得分:0)

Type描述要用于该属性的.Net CLR类型。在这种情况下是一个普通的字符串。

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

关于类型部分的含义: 类型是System.String,它非常精确地描述了程序集名称,文化和版本。 publicKeyToken是程序集强名称的键 - 只要用不同的键签名,就允许重复的程序集名称。

您可以将此映射写为

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

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

但是如果你想在某个程序集中使用自定义类型,你需要指定是否更像你现在正在做的更详细。

答案 1 :(得分:0)

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