Estoy tratando de averiguar cómo mapear una propiedad IDictionary en 1.0 con fluidez.Código fluido para mapear un IDictionary <SomeEntity, int>?
Según mi entender, esto se traduce en una asociación ternaria.
Ejemplo:
class Bar
{
public IDictionary<SomeEntity, int> Foo {get; set;}
}
Bar.hbm.xml contendría entonces:
<map name="Foo" table="BarFooTable">
<key column="..."/>
<index-many-to-many class="SomeEntity" column="SomeEntity_Id"/>
<element column="Value" type="int"/>
</map>
¿Qué tendría que escribir en nhibernate fluidez para producir este mapeo XML?
El punto de interés aquí es que la clave es un tipo de entidad mientras que el valor es un tipo de valor. (Editar: Al menos, esto parece distinguirse de los otros ejemplos y preguntas que flotan en stackoverflow o grupos de google, que son value-value o key-key)
Después de mucha experimentación, puedo producir una asignación para un IDictionary<SomeEntity,SomeEntity>
tipos de entidad (puro):
HasManyToMany(x => x.Foo)
.AsMap("Key")
.AsTernaryAssociation("Key2", "Value")
;
también puedo producir una asignación para un (tipos de valor puro) IDictionary<int,int>
:
HasMany(x => x.Foo)
.AsMap<int>("Key")
.Element("Value")
;
que puede incluso conseguir alguna manera de producir una asignación para un IDictionary<int, SomeValue)
, aunque ninguno que NHibernate aceptará.
Pero no puedo entender cómo producir un mapeo para un IDictionary<SomeValue, int>
que es lo que quiero. ¿Alguien puede dar algunos consejos?
crossposted a http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/b1b335ff5f9a6a40 – fostandy