簡體   English   中英

如何在C#中將此SQL語句轉換為linq?

[英]How do I convert this SQL statement to linq in C#?

請幫我在C#中將這個SQL語句轉換為Linq:

string cmd = "SELECT * FROM dbo.Personnel WHERE (dbo.Personnel.FName LIKE 
    @FName + '%' AND dbo.Personnel.LName LIKE @LName +'%')";

if (objPPersonnel.PersonnelCode != 0)
{
    cmd += "AND ( dbo.Personnel.PersonnelCode =@PersonnelCode ) ";
}

if (objPPersonnel.NationalCode != "0")
{
    cmd += "AND ( dbo.Personnel.NationalCode =@NationalCode ) ";
}

if (objPPersonnel.OrganizationPostId > 0)
{
    cmd += "AND ( dbo.Personnel.OrganizationPostId =@OrganizationPostId ) ";
}

我不確定這是不是你問的問題:

    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;
persons.Where(p => p.FirstName.StartsWith("firstName") &&
                             p.LastName.StartsWith("lastName") && 
                            (p.PersonCode != 0 ? p.personCode == personCode : true) ...

這樣做:

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) 
        )
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM