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

LINQ OR运算符未给出结果

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来说太大或太小。

感谢