我已经编写了一个带有 or 条件的 LINQ 查询,但它不起作用,看来我做错了什么。
我正在传递一个字符串值,我想在它上面得到我的结果。
var userDetails = context.tbl_members.Where
(
d => d.Mobile == value
||
d.MemberId == Int32.Parse(value)
).SingleOrDefault();
如果有人输入手机号码则无法使用,但如果使用 memberID 则无法使用
如果我拆分查询,则只保留移动设备,使其无法正常运行。
var userDetails = context.tbl_members.Where(d => d.Mobile == value ).SingleOrDefault();
请检查我做错了什么或条件
问候 解脱
最佳答案
var userDetails = context.tbl_members
.Where(d => d.Mobile == value ||
d.MemberId == Int32.Parse(value))
.SingleOrDefault();
看起来您正在使用 Linq to Entities 或 Linq to Sql。 Int32.Parse()
在该上下文中不受支持 - 只需在查询之前进行数字转换:
int numValue = Int32.Parse(value);
var userDetails = context.tbl_members
.Where(d => d.Mobile == value || d.MemberId == numValue)
.SingleOrDefault();
关于c# - LINQ OR 运算符不给出结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351894/