Hey, ich die folgenden Einheiten zur Karte haben:NHibernate - Mapping verbindungs Tisch & Back-Referenzen
class Document
{
public int DocumentId { get; set; }
public DocumentList ContainingList { get; set; }
}
class DocumentList
{
public int DocumentListId { get; set; }
public DateTime LastUpdateTime { get; set; }
public IList<Doucment> Documents { get; set; }
}
Mit der Einschränkung, dass nur ein Document ein bestimmtes Dokument (altough einer Sammlungs- besitzen kann Tabelle existiert hier).
Mapping hat auf den folgenden Tabellen verlassen (die der Einfachheit halber nicht geändert werden kann):
enter code here
<class name="DocumentList" table="TB_DOC_LIST">
<id name="DocumentListId">
<column name="DOC_LIST_ID"/>
<generator class="assigned" />
</id>
<property name="LastUpdateTime" column="DOC_LIST_UPDATE_TIME ">
<set name="Documents" table="TB_LIST_AND_DOCS">
<key column="DOC_ID"></key>
<one-to-many class="Document" />
</set>
</class>
:
TB_DOC
------
DOC_ID (int, PK)
DOC_CONTENT (blob)
TB_DOC_LIST
-----------
DOC_LIST_ID (int, PK)
DOC_LIST_UPDATE_TIME (datetime)
TB_LIST_AND_DOCS
----------------
DOC_LIST_ID
DOC_ID
So ist die Abbildung i von tohught so sein würde und:
Nun, nach den bekannten Mustern, kann ich nicht herausfinden, wie der Backlink sein sollte vom Dokument zur DocumentList gemappt werden, da ich ein "wired | Eins-zu-Viele-Beziehung hier, gebrochen durch eine dritte Tabelle. Ich möchte auch nicht, dass ein Document-Objekt eine IList referenziert, um dies mit Rückverweisen auf Viele-zu-Viele zu lösen, da jedes Dokument nur eine solche "Eigentümer" -Dokumentliste hat. Irgendeine elegante Idee? Was mache ich hier falsch?