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