我已经写了一个带有或者条件的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();
请检查我做错了什么或条件
此致 解脱
答案 0 :(得分:5)
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();
答案 1 :(得分:0)
感谢您的帮助brokenGlass,
错误是从字符串转换为int,因为我传递了10位数的字符串,它没有被转换为int
对于Int32,值太大或太小。
感谢