LINQ OR运算符未给出结果
本文关键字:结果 OR 运算符 LINQ | 更新日期: 2023-09-27 18:25:03
我已经编写了一个带有或条件的LINQ查询,但它不起作用,似乎我做错了什么。
我正在传递一个字符串值,我想得到它的结果。
var userDetails = context.tbl_members.Where
(
d => d.Mobile == value
||
d.MemberId == Int32.Parse(value)
).SingleOrDefault();
如果有人放了一个手机号码,这是不起作用的,但如果使用memberID
如果我拆分查询,只保留mobile no,它运行得很好。
var userDetails = context.tbl_members.Where(d => d.Mobile == value ).SingleOrDefault();
请检查我做错了什么或条件
问候Moksha
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();
感谢您的帮助brokenGlass,
错误是在从字符串转换为int时,因为我传递的是10位数的字符串,它没有转换为int
值对于Int32来说太大或太小。
感谢