转自https://www.codenong.com/50463628/
sql:
1 SELECT [t0].[ID], [t0].[IsNeedJS], [t0].[TCID], [t0].[JGID], [t0].[TCMC], [t0].[JGMC], [t0].[CJJ], [t0].[PTJ], [t0].[JSJ], COALESCE([t3].[TCName],[t3].[TCName]) AS [TCname], [t2].[CSMC] 2 FROM [Group_TCInfo] AS [t0] 3 INNER JOIN [JG_XXB] AS [t1] ON [t0].[JGID] = [t1].[TJJGID] 4 INNER JOIN [XT_CSLB] AS [t2] ON [t1].[CSBH] = [t2].[CSBH] 5 LEFT OUTER JOIN [TCCOMPANY] AS [t3] ON [t0].[TCID] = [t3].[TCID] AND ([t3].[CompanyID] = 2022053000001034) 6 WHERE ([t0].[GroupID] = 2022053100000694) AND ([t0].[OrderId] = 2022053100000846) AND ([t0].[IsDel] = 0)
linq. Lambda写法:
1 var tcinfo = db.Group_TCInfo 2 .Join(db.JG_XXB, a => a.JGID, b => b.TJJGID, (a, b) => new { Group = a, JG = b }) 3 .Join(db.XT_CSLB, a => a.JG.CSBH, b => b.CSBH, (a, b) => new { a.Group, a.JG, CS = b }) 4 .GroupJoin(db.TCCOMPANY, a => new { a.Group.TCID, qyid }, b => new { b.TCID, qyid = b.CompanyID }, (a, b) => new { a.Group, a.JG, a.CS, TCCOM = b }) 5 .Where(t => t.Group.GroupID == item.GroupID && t.Group.OrderId == orderid && t.Group.IsDel == 0) 6 .SelectMany(p => p.TCCOM.DefaultIfEmpty(), (a, b) => new { a.Group, a.JG, a.CS, TCCOM = b }) 7 .Select(t => new OrderTcInfo 8 { 9 ID = t.Group.ID, 10 IsNeedJS = t.Group.IsNeedJS, 11 TCID = t.Group.TCID, 12 JGID = t.Group.JGID, 13 TCMC = t.Group.TCMC, 14 JGMC = t.Group.JGMC, 15 PTJ = t.Group.PTJ, 16 JSJ = t.Group.JSJ, 17 CJJ = t.Group.CJJ, 18 TCname = t.TCCOM.TCName ?? t.Group.TCMC, 19 CSMC = t.CS.CSMC, 20 } 21 ) 22 .ToList();