Ich versuche herauszufinden, wie IDictionary-Eigenschaft in fließenden 1.0 RTM zugeordnet werden.Fließender Code zum Zuordnen eines IDictionary <SomeEntity, int>?
Aus meinem Verständnis übersetzt sich dies in eine ternäre Assoziation.
Beispiel:
class Bar
{
public IDictionary<SomeEntity, int> Foo {get; set;}
}
Bar.hbm.xml würde dann enthalten:
<map name="Foo" table="BarFooTable">
<key column="..."/>
<index-many-to-many class="SomeEntity" column="SomeEntity_Id"/>
<element column="Value" type="int"/>
</map>
Was habe ich in fließend nhibernate schreiben diese Zuordnung xml zu produzieren?
Der Punkt von Interesse ist hier, dass der Schlüssel ein Entitätstyp ist, während der Wert ein Werttyp ist. (edit: Zumindest scheint sich das von den verschiedenen anderen Beispielen und Fragen zu unterscheiden, die auf stackoverflow- oder google-Gruppen herumfliegen, die Wert-Wert oder Schlüssel-Schlüssel sind)
Nach vielen Experimenten kann ich ein Mapping für ein IDictionary<SomeEntity,SomeEntity>
(reine Entitätstypen):
HasManyToMany(x => x.Foo)
.AsMap("Key")
.AsTernaryAssociation("Key2", "Value")
;
ich auch eine Zuordnung für ein IDictionary<int,int>
(reine Werttypen) produzieren können:
HasMany(x => x.Foo)
.AsMap<int>("Key")
.Element("Value")
;
ich kann sogar eine gewisse Art und Weise erhalten eine Zuordnung für einzur Herstellung von, obwohl keine, die NHibernate akzeptiert.
Aber ich kann nicht herausfinden, wie man ein Mapping für eine IDictionary<SomeValue, int>
erstellen, was ich will. Kann mir jemand Tipps geben?
gecrosspostet zu http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/b1b335ff5f9a6a40 – fostandy