两表联查
//多表查询示例
//1、单条件Join
var bomsetver = ctx.Bomset//主表
.Join(
ctx.Bomsetver,//外键表
a => a.Factory,//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY”
b => b.Factory,//外键表主键
(a, b) => a//查询结果:显示主表的所有字段
);
//2、多条件Join
var bomsetver2 = ctx.Bomset//主表
.Join(
ctx.Bomsetver,//外键表
a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
b => new { f = b.Factory, id = b.BomSetId },//外键表主键
(a,b)=>new {a,b }//查询结果:显示主表的所有字段和外键表所有字段
);
//3、多条件Join,返回部分字段
var bomsetver3 = ctx.Bomset//主表
.Join(
ctx.Bomsetver,//外键表
a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FACTORY AND A.BOMSETID=B.BOMSETID”
b => new { f = b.Factory, id = b.BomSetId },//外键表主键
(a, b) => new
{
AID = a.BomSetId,//主表字段,赋别名
a.BomSetDesc,//主表字段
BID = b.BomSetId,//外键表字段,赋别名
b.BomSetVersion//外键表字段
});
//4、TableA Left Join TableB
var bomsetver4 = ctx.Bomset
.GroupJoin(
ctx.Bomsetver,
a => new { f = a.Factory, id = a.BomSetId },//主表外键,对应SQL语句“WHERE A.FACTORY=B.FA