ich die folgenden Tabellen:Wie mehrere 1-Beziehung zur Verknüpfung von Tabellen haben mit NHibernate
- Anwendung
- Komponente
- Position
Eine Anwendung 1 bis viele Komponenten haben können Eine Anwendung kann 1 bis viele Positionen haben.
Wenn ich versuche, eine wie dies mit NHibernate zu laufen beitreten:
IEnumerable<Application> applications = Session.Query<Application>()
.FetchMany(r => r.Components)
.FetchMany(r => r.Positions)
und ich an den Positionen sehen geben Sie es doppelte Positionen hat. Dies geht weg, wenn ich das erste FetchMany()
entfernen:
IEnumerable<Application> applications = Session.Query<Application>()
.FetchMany(r=>r.Positions)
Ich dachte, NHibernate kümmert sich um Ihre Sammlungen zu normalisieren, wenn mehrere tut 1 zu viele schließt sich, aber es scheint nicht zu funktionieren.
Gibt es Vorschläge oder Problemumgehungen, wie ich mehrere Verknüpfungen von 1 zu vielen mithilfe von NHibernate LINQ ausführen kann, ohne diese doppelten Datensätze zu erhalten?
Gibt es eine Beziehung zwischen Komponenten und Positionen? –
@ John Weldon - nein – leora
Diese Antwort könnte von Interesse sein http://stackoverflow.com/questions/2295837/nhibernate-problem-eager-loading-two-child-collections-one-bein-a-component-li/2297156 # 2297156 – dotjoe