objRecord = await _context.Persons
.Where(tbl => tbl.DeletedFlag == false)
.ToListAsync();
这是我已成功获取Person
表中DeletedFlag
为假的所有记录的EF代码。
我想添加另一个标准,如果传入了姓氏,那么添加额外的where子句
.Where(tbl => tbl.Surname.Contains(theSurname))
我已尝试过IQueryable和其他一些选项,但无法弄清楚如何做等效的
string theSurname = "";
objRecord = await _context.Persons
.Where(tbl => tbl.DeletedFlag == false)
if ( theSurname != "") {
.Where(tbl => tbl.Surname.Contains(theSurname))
}
.ToListAsync();
显然无法正常工作,因为您无法在EF调用中添加if语句。
我之后可以添加一个限制objRecord的标准,但我不想检索所有记录,然后将其删除,我只想获取我需要的记录。
答案 0 :(得分:2)
您只需添加<form id="Form1"
defaultbutton="SubmitButton"
defaultfocus="TextBox1"
runat="server">
即可在Where
方法中合并条件,以便最终查询如下所示:
tbl.Surname.Contains(theSurname)
答案 1 :(得分:1)
您必须对Where子句中的现有条件应用逻辑AND(&&
),即tbl.Surname.Contains(theSurname)
;
所以你的查询将是
.Where(tbl => tbl.DeletedFlag == false && tbl.Surname.Contains(theSurname));