eg:
注意:on 前后要保持字段名一致
var bleftQuery = from f in bFamiliesjoin a in bAudits on new{Id=f.Id,DCYId=f.ModifyID} equals new{Id=a.HealthFamilyId,a.DCYId} into nafrom a in na.DefaultIfEmpty()select new FamilyWithAudit(){Id = f.Id,SearchCode = f.SearchCode,FamilyName = f.FamilyName,MemberCount = f.MemberCount,FamilyCode = f.FamilyCode,NeighborhoodCommitteeCode = f.NeighborhoodCommitteeCode,Address = f.Address,IsAbandoned = f.IsAbandoned,KpOrganizationLeaderId = f.KpOrganizationLeaderId,KISH = f.KISH,IntervieweeCode = f.IntervieweeCode,IntervieweeMobile = f.IntervieweeMobile,IntervieweeMobileRelationship = f.IntervieweeMobileRelationship,IntervieweeCodeSignature = f.IntervieweeCodeSignature,Province = f.Province,City = f.City,County = f.County,Town = f.Town,Village = f.Village,AreaCode = f.AreaCode,InvestigateState = f.InvestigateState,JianCeCode = f.JianCeCode,StreetCode = f.StreetCode,SampleNum = f.SampleNum,SampleType = f.SampleType,NeedRecord = f.NeedRecord,NeedPhotot = f.NeedPhotot,AuditFailedNeedHandle = f.AuditFailedNeedHandle,AnswerCostTime = f.AnswerCostTime,SetRange = f.SetRange,Remark = f.Remark,CreateID = f.CreateID,CreateTime = f.CreateTime,ModifyID = f.ModifyID,ModifyTime = f.ModifyTime,DeletedTime = f.DeletedTime,KpExamVersionId = f.KpExamVersionId,IsHandle = f.IsHandle,IsNoOne = f.IsNoOne,AuditResult = a != null ? a.AuditResult : AuditResult.未调查_添加或者导入};var bListAll = bleftQuery.ToList();
//一般的联表查询
var bListResult = bList.Join(_context.FamilyAudioSub.Select(r => new {AudioId = r.AudioId}), f => f.Id, r => r.AudioId,(f, r) => new FamilyAudio(){Id = f.Id,CreateID = f.CreateID,CreateTime = f.CreateTime,Duration = f.Duration,FamilyId = f.FamilyId,Type = f.Type,Size = f.Size}).ToList();