如何将此SQL语句转换为C#中的linq?

如何将此SQL语句转换为C#中的linq?,c#,sql,entity-framework,linq,C#,Sql,Entity Framework,Linq,请帮助我将此SQL语句转换为C#中的Linq: 我不确定这是否是你要问的: var query = from c in dbContext.Personnel where c.Personnel.LName.Contains(parLName) $$ ((c.Personnel.PersonnelCode = parPersonnelCode && parPersonnelCode != 0)||parPer

请帮助我将此SQL语句转换为C#中的Linq:


我不确定这是否是你要问的:

    var query = from c in dbContext.Personnel
                where c.Personnel.LName.Contains(parLName)
                $$ ((c.Personnel.PersonnelCode = parPersonnelCode && parPersonnelCode != 0)||parPersonnelCode == 0)
                $$ ((c.Personnel.NationalCode = parNationalCode && parNationalCode != 0)||parNationalCode == 0)
                $$ ((c.Personnel.OrganitationPostId = parOrganitationPostId && parOrganitationPostId > 0)||parOrganitationPostId == 0)
                select c;

我不确定这是否是你要问的:

    var query = from c in dbContext.Personnel
                where c.Personnel.LName.Contains(parLName)
                $$ ((c.Personnel.PersonnelCode = parPersonnelCode && parPersonnelCode != 0)||parPersonnelCode == 0)
                $$ ((c.Personnel.NationalCode = parNationalCode && parNationalCode != 0)||parNationalCode == 0)
                $$ ((c.Personnel.OrganitationPostId = parOrganitationPostId && parOrganitationPostId > 0)||parOrganitationPostId == 0)
                select c;
这将有助于:

var result = Personnel
    .Where(p => 
    {
        p.FName.IndexOf(firstName) == 0 
        && p.LName.IndexOf(lastName) == 0 
        && 
        (
            (p.PersonnelCode == personnelCode && objPPersonnel.PersonnelCode != 0) ||
            (p.NationalCode == nationalCode && objPPersonnel.NationalCode != 0) ||
            (p.OrganizationPostId == organizationPostId && objPPersonnel.OrganizationPostId != 0) 
        )
    });
这将有助于:

var result = Personnel
    .Where(p => 
    {
        p.FName.IndexOf(firstName) == 0 
        && p.LName.IndexOf(lastName) == 0 
        && 
        (
            (p.PersonnelCode == personnelCode && objPPersonnel.PersonnelCode != 0) ||
            (p.NationalCode == nationalCode && objPPersonnel.NationalCode != 0) ||
            (p.OrganizationPostId == organizationPostId && objPPersonnel.OrganizationPostId != 0) 
        )
    });

如果你不描述你的问题,就很难提供帮助。请显示您尝试了什么,以便我们可以看到您遇到了什么问题。我想将多模式应用于where StateMet自己编写代码,并让我们知道您在编写代码时是否遇到任何问题或错误。试着先改变自己。如果你不描述你的问题,就很难提供帮助。请显示您尝试了什么,以便我们可以看到您遇到了什么问题。我想将多模式应用于where StateMet自己编写代码,并让我们知道您在编写代码时是否遇到任何问题或错误。首先尝试转换自己。我认为
$
是弗洛伊德式的错误:)此外,最好有条件地(使用谓词生成器)组合查询,而不是使用这些
!=0
检查它的内部。他没有寻找
包含
,因为他最后只有%;因此
包含
将不起作用我认为
$
是弗洛伊德式的打字错误:)此外,最好有条件地(使用谓词生成器)组合查询,而不是使用这些
!=0
检查它的内部。他没有寻找
包含
,因为他最后只有%;因此
包含
将不起作用