2017-08-22 3 views
1

Ich möchte eine Verbindung zwischen einer Ansicht und einer Tabelle mit NHibernate durchführen. Die Spalten COL1 und COL2 gehören zu MY_VIEW, die Spalten COL3 und COL4 gehören zu MY_TABLE. Beide haben eine ID-Spalte, und ich möchte sie basierend darauf verbinden. Ich verwende den folgenden Code, aber die daraus resultierende Abfrage wählt alle Spalten aus MY_VIEW aus, so dass es fehlschlägt.NHibernate Join nimmt nur Daten aus der linken Tabelle

Table("MY_VIEW"); 
ID(x => x.Id).GeneratedBy.Assigned().Column("ID"); 
Map(x => x.Col1).Column("COL1"); 
Map(x => x.Col2).Column("COL2"); 

Join("MY_TABLE"", m => { 
    m.Optional(); 
    m.KeyColumn("ID"); 
    Map(x => x.Col3).Column("COL3"); 
    Map(x => x.Col4).Column("COL4"); 
}); 

Die Abfrage sieht wie folgt aus:

select v.COL1, v.COL2, v.COL3, v.COL4 
from MY_VIEW v left outer join MY_TABLE t 
on v.ID = t.ID 

Antwort

0

diese kleine Änderung versuchen:

Join("MY_TABLE"", m => { 
    ... 
    m.Map(x => x.Col3).Column("COL3"); 
    m.Map(x => x.Col4).Column("COL4"); 
}); 
Verwandte Themen