objRecord = await _context.Persons
.Where(tbl => tbl.DeletedFlag == false)
.ToListAsync();
这是我得到的 EF 代码,它成功地从Person
表在哪里DeletedFlag
是假的。
我想添加另一个where条件,如果传入了姓氏,则添加额外的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 的条件,但我不想检索所有记录,然后将其删除,我宁愿只获取我需要的记录。
您可以组合条件Where
方法只需添加tbl.Surname.Contains(theSurname)
所以你的最终查询将如下所示:
objRecord = await _context.Persons
.Where(tbl => tbl.DeletedFlag == false &&
tbl.Surname.Contains(theSurname))
.ToListAsync();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)