J'essaie de comprendre comment mapper une propriété IDictionary dans RTM 1.0 fluide. Selon ma compréhension, cela se traduit par une association ternaire.Code courant pour mapper un IDictionary <SomeEntity, int>?
Exemple:
class Bar
{
public IDictionary<SomeEntity, int> Foo {get; set;}
}
Bar.hbm.xml contient alors:
<map name="Foo" table="BarFooTable">
<key column="..."/>
<index-many-to-many class="SomeEntity" column="SomeEntity_Id"/>
<element column="Value" type="int"/>
</map>
Qu'est-ce que je dois écrire dans NHibernate couramment pour produire ce xml mapping?
Le point d'intérêt ici est que la clé est un type d'entité alors que la valeur est un type de valeur. (edit: Au moins, cela semble se distinguer des autres exemples et questions qui circulent sur les groupes stackoverflow ou google, qui sont value-value ou key-key)
Après beaucoup d'expérimentation je peux produire une cartographie pour un IDictionary<SomeEntity,SomeEntity>
(types d'entité pure):
HasManyToMany(x => x.Foo)
.AsMap("Key")
.AsTernaryAssociation("Key2", "Value")
;
Je peux aussi produire une cartographie pour un IDictionary<int,int>
(types de valeur pure):
HasMany(x => x.Foo)
.AsMap<int>("Key")
.Element("Value")
;
je peux même obtenir un moyen de produire une cartographie pour un IDictionary<int, SomeValue)
, bien que rien que NHibernate acceptera.
Mais je ne peux pas comprendre comment produire un mappage pour un IDictionary<SomeValue, int>
qui est ce que je veux. Quelqu'un peut-il donner quelques conseils?
crossposted à http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/b1b335ff5f9a6a40 – fostandy