我对Linq和EF很陌生。
字符串比较不正确吗?
我已经尝试过String.Equals
或CompareTo
,但是那些返回boolean
的值,我读到Linq
时,比较String == string
就像一个{{ 1}}。
WHERE statement
list应该返回一堆值,其中来自数据库的PartNumber列等于参数partNumber。当我使用int比较进行搜索时,确实会在int列中找到匹配项,但在varchar列中却找不到。控制器始终返回空且计数为0。
答案 0 :(得分:0)
是不匹配的情况吗?仅当您要忽略大小写时,才尝试以下操作:
public IHttpActionResult GetMultifiberResult(string partNumber)
{
var list = db.MultifiberResults.Where(s => s.PartNumber.Equals(partNumber, StringComparison.OrdinalIgnoreCase)).ToList();
return Ok(list);
}
否则,您的代码就可以了。您需要对其进行调试并向我们显示结果,并确保数据库或参数值中没有前导或尾随空格。在这种情况下,您应该同时.Trim()
。