¿Cómo puedo asignar una lista de cadenas de mi entidad usando NHibernate?
-
09-06-2019 - |
Pregunta
Tengo dos tablas en mi base de datos:Artículos y Etiquetas
Las Etiquetas de las tablas constan de ArticleID (clave externa) y una Etiqueta (varchar).
Ahora necesito un mapa artículos de etiquetas en un sólo lectura de la colección en el Artículo de la entidad, ya sea mediante IList Etiquetas o ReadOnlyCollection Etiquetas.
He consultado el NHibernate material de referencia, pero me parece que no puede encontrar al utilizar Set, Bolsa y la otra Nhibernate colecciones.He visto ejemplos de utilización de la ISet colección, pero en realidad no me gusta para atar mis clases de entidad a un tipo de NHibernate.
¿Cómo puedo hacer el mapeo en NHibernate?
editar:Terminé con un <bag>
en su lugar, ya que no se requiere un índice:
<bag name="Tags" table="Tag" access="nosetter.camelcase" lazy="false">
<key column="ArticleId" />
<element column="Tag" type="System.String" />
</bag>
Solución
El tipo de colección a utilizar en su asignación depende de cómo usted desea representar a la recogida en el código.La configuración del mapa así:
- El
<list>
se asigna directamente a un IList. - El
<map>
se asigna directamente a un IDictionary. - El
<bag>
se asigna a un IList.Un no cumplir completamente con la interfaz IList porque el Método Add() no se garantiza la volver al índice correcto.Un objeto puede ser añadido a un<bag>
sin la inicialización de la interfaz IList.Asegúrese de ocultar la interfaz IList de la los consumidores de su API o hacer bien documentado. - El
<set>
se asigna a un Iesi.Las colecciones.ISet.Que la interfaz es la parte de la Iesi.Las colecciones de la asamblea distribuido con NHibernate.
así que si quieres un IList a ser devuelto, entonces se puede utilizar el <list>
la cartografía.En tu caso, yo probablemente mapa de uso de la <list>
la cartografía.