Configuración de propiedades de NHibernate

En NHibernate, tengo esta configuración.

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

¿Qué significan estos? msconrlib, versión, cultura, publicKeyToken? ¿Por qué necesitamos estos? He trabajado en Hibernate en java env, nunca uso estas etiquetas.

Muchas Gracias

preguntado el 03 de mayo de 12 a las 20:05

2 Respuestas

El tipo describe el tipo .Net CLR que se usará para esa propiedad. En este caso una cadena ordinaria.

No tienes que especificarlo en este caso. Hay casos en los que desea especificarlo, por ejemplo, cuando trabaja con tipos personalizados. O cuando desee asignar un DateTime.

En cuanto al significado de las partes del tipo: El tipo es System.String, se describe con mucha precisión en cuanto al nombre del ensamblado, la cultura y la versión. PublicKeyToken es una clave para un nombre seguro para el ensamblado; esto permite nombres de ensamblados duplicados siempre que estén firmados con claves diferentes.

Podrías escribir este mapeo como

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

or

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

Pero si quisiera usar un tipo personalizado en algún ensamblaje, necesitaría especificar si es más detallado como lo está haciendo ahora.

contestado el 03 de mayo de 12 a las 21:05

También se debe señalar si name y column name es lo mismo solo uso <property name="Name" \> - Rippo

En MS .Net se llama nombre de ensamblado fuerte. Es cómo se identifica el tipo específico en .Net Framework. Entonces, esta cadena en particular establece que usar System.string de la biblioteca mscorlib con la versión 4.0. sin preferencias de localización. Esto permite que .Net use ensamblajes implementados en GAC - Caché de ensamblaje global que actúa como un directorio global de archivos DLL del sistema.

contestado el 03 de mayo de 12 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.