2009-08-30 20 views
16

Ich möchte eine Klasse zuordnen, die zu einem linken äußeren Join und nicht zu einem innner Join führt.Fluent Nhibernate linker Join

Meine zusammengesetzte Benutzereinheit besteht aus einer Tabelle ("aspnet_users") und einigen optionalen Eigenschaften in einer zweiten Tabelle (wie FullName in "users").

Dieses Mapping Ergebnis in einem inneren Join auswählen, so dass kein Ergebnis herauskommt, ist zweite Tabelle als keine Daten. Ich möchte einen linken Join erzeugen.

Ist dies nur auf Abfrageebene möglich?

Antwort

26

Versuchen Sie die Optional() Methode.

Join("Users", m => 
{ 
    m.Optional(); 
    m.Map(x => x.FullName); 
}); 
+0

Dank dieser funktionierte! – Ronnie

+2

Woo! Das hat mir geholfen. – David

0

Erst diese Arbeit für mich (NH 3.3):

Join("OuterJoinTable", 
       m => 
       { 
        m.Fetch.Join().Optional(); 
        m.KeyColumn("ForeignKeyColumn"); 

        m.Map(t => t.Field, "FieldName"); 
       });