linq组合列搜索
我想搜索两列组合等于参数的记录,为什么它不起作用linq组合列搜索,linq,Linq,我想搜索两列组合等于参数的记录,为什么它不起作用 public RDCheck SearchByUserPlusId(string uid) { RDCheckDataContext dc = new RDCheckDataContext(_connString); var query = (from r in dc.RDChecks where (r.login + r.id).E
public RDCheck SearchByUserPlusId(string uid)
{
RDCheckDataContext dc = new RDCheckDataContext(_connString);
var query = (from r in dc.RDChecks
where (r.login + r.id).Equals(uid)
select r).FirstOrDefault();
return query;
}
例如,表中的一条记录是
id:4/登录:测试
所以我传递参数uid=test4,但它返回null,为什么?在连接之前使用ToString()
public RDCheck SearchByUserPlusId(string uid)
{
RDCheckDataContext dc = new RDCheckDataContext(_connString);
var query = (from r in dc.RDChecks
where (r.login.ToString() + r.id.ToString()).Equals(uid)
select r).FirstOrDefault();
return query;
}
你能说出数据库中
id
和login
的类型吗?你有没有尝试(r.login.toString()+r.id.toString()).Equals(uid)
?我知道了。必须在每列末尾添加Trim()。但是谢谢你,伙计,你的想法也很棒。Trim没有太多意义。@Daniel Hilgarth他只是没有仔细检查他的数据库,“test
”。如果值真的是test
和4
,没有空格…@Magnus伙计们,他修剪这个(r.login+r.id)
,并且使用像((r.login+r.id).Trim()).Equals(uid)
。你们这些家伙想得很专业,但Steven不知道他的错误在他的数据库中,我认为他不应该允许id
或login
在其中有空格。如果id
是int
它永远不会是空字符串(无需修剪)。如果登录名为char
,则可以执行以下操作:login?“”:“”:login.ToString()