[英]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.