NHibernate连接只从左表中获取数据

时间:2017-08-22 14:02:12

标签: c# nhibernate

我想用NHibernate在视图和表之间进行连接。列COL1和COL2属于MY_VIEW,列COL3和COL4属于MY_TABLE。它们都有一个ID列,我想基于它加入它们。我使用以下代码,但由此产生的查询选择MY_VIEW中的所有列,因此失败。

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

查询如下所示:

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

1 个答案:

答案 0 :(得分:0)

尝试这个小改动:

  SELECT  A.ID
           ,B.EMAIL
           ,A.NUMBER 
           ,A.EXPIRATION
      FROM vw_RECORD AS A
      LEFT JOIN vw_INFO AS B ON A.ID=B.ID
      WHERE NUMBER LIKE 'C%'
      AND DATEDIFF(DAY,A.EXPIRATION,GETDATE())=7