在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,我从不使用这些标签。
由于
答案 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的全局目录。