NHibernate join 只从左边获取数据table
NHibernate join only takes data from the left table
我想使用 NHibernate 在视图和 table 之间执行连接。 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
试试这个小改动:
Join("MY_TABLE"", m => {
...
m.Map(x => x.Col3).Column("COL3");
m.Map(x => x.Col4).Column("COL4");
});
我想使用 NHibernate 在视图和 table 之间执行连接。 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
试试这个小改动:
Join("MY_TABLE"", m => {
...
m.Map(x => x.Col3).Column("COL3");
m.Map(x => x.Col4).Column("COL4");
});