2017-08-22 2 views
1

Je souhaite effectuer une jointure entre une vue et une table avec NHibernate. Les colonnes COL1 et COL2 appartiennent à MY_VIEW, les colonnes COL3 et COL4 appartiennent à MY_TABLE. Les deux ont une colonne d'identification, et je veux les rejoindre en fonction de cela. J'utilise le code suivant mais la requête qui en résulte sélectionne toutes les colonnes de MY_VIEW, donc elle échoue.NHibernate join ne prend que les données de la table de gauche

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"); 
}); 

La requête ressemble à ceci:

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

Répondre

0

essayer ce petit changement:

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