LINQ OR运算符没有给出结果

Mok*_*sha 1 c# linq

我已经写了一个带有或者条件的LINQ查询,但它没有用,看起来我做错了.

我传递一个字符串值,然后,我想得到我的结果.

var userDetails = context.tbl_members.Where
                (
                  d => d.Mobile == value 
                  || 
                  d.MemberId == Int32.Parse(value)
                ).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

如果有人把手机没有,但是如果使用memberID,它就无法正常工作

如果我拆分查询只保留移动没有运行正常.

var userDetails = context.tbl_members.Where(d => d.Mobile == value ).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

请检查我做错了什么或条件

关心莫克沙

Bro*_*ass 5

var userDetails = context.tbl_members
                         .Where(d => d.Mobile == value || 
                                     d.MemberId == Int32.Parse(value))
                         .SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

看起来你正在使用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();
Run Code Online (Sandbox Code Playgroud)