如果一个Join通过了一个条件,如何执行它



我想在查询中执行if语句,但我不确定如何执行。我想表演:

join asoc2 in Personnels
on comp.Secondary_associate equals asoc2.Dpinitials

如果存在可用的Second_Person数据。有什么办法吗?如果有更简单的方法,请告诉我。以下是我的完整查询:

(from sc in Data
join comp in Companies
on sc.Company equals comp.Company
join anl in Personnels  
on sc.SalesP_initials equals anl.Dpinitials
join asoc1 in Personnels
on comp.First_associate equals asoc1.Dpinitials
join asoc2 in Personnels
on comp.Second_Person equals asoc2.Dpinitials
select new {
MyCompany = sc.Company,
ReleaseDate = sc.Release_date,  
WebHeadline = sc.Short_subject,
EmailTo =   
    anl.Last_name + ", " + anl.First_name + " <" + anl.Email_address.Trim() + ">; " 
    + 
    asoc1.Last_name + ", " + asoc1.First_name + " <" + asoc1.Email_address.Trim() + ">; " 
    +
    asoc2.Last_name + ", " + asoc2.First_name + " <" + asoc2.Email_address.Trim() + ">"
}).FirstOrDefault ()

现在,它只显示null,因为*comp.Second_Persons*不存在。

您可以在linq中使用"where"来过滤您的数据

最新更新