2009-08-30 22 views
16

Chcę zmapować klasę, która spowoduje lewe sprzężenie zewnętrzne, a nie połączenie innner.Fluent Nhibernate left join

Moja złożona jednostka użytkownika jest tworzona przez jedną tabelę ("aspnet_users") i niektóre opcjonalne właściwości w drugiej tabeli (jak FullName w "użytkownikach").

ten wynik odwzorowania w łączeniu wewnętrznym wybierz, więc nie wynik wyjdzie w drugiej tabeli jako brak danych. Chciałbym wygenerować lewe połączenie.

Czy jest to możliwe tylko na poziomie zapytania?

Odpowiedz

26

Wypróbuj metodę Optional().

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

Dzięki to działa! – Ronnie

+2

Woo! To mi pomogło. – David

0

Tylko ta nie działa dla mnie (NH 3.3):

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

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