基于文字的模糊查询如下
p => p.Name.Contains(searchStr)
但是如果Code是数字
这个查询还要到数字中去查询 该如何写?
p.Code.Contains(searchStr)
p=> p.Code.GetType == typeof(int) ? (p.Name.Contains(searchStr) || p.Code.Contains(searchStr)) : p.Name.Contains(searchStr)
没明白你说的“如果code是数字”是个什么意思。
var query = table;
query = query.where(p=>p.Name.Contains(searchStr);
if(p.Code is digital)//这里使用伪代码,具体要看你的意思
{
query = query.Where(p=>p.Code.Contains(searchStr);
}
p.Code.ToString().Contains(searchStr)
p=> p.Code.GetType == typeof(int) ? (p.Code.ToString().Contains(searchStr) || p.Name.Contains(searchStr)) : p.Code.ToString().Contains(searchStr)
今天刚碰到了 已解决 1年前的问题了。
你的意思大概是让整型列也能进行模糊查询吧。我的实现方案是这样var idCollection=db.SomeTable.Select(v=>new{Id=v.Id,Code=v.Code }).ToList().Select(v=>new{Id=v.Id,Code=v.Code.ToString()}).Where(v=>v.Code.Contains(searchStr)).Select(v=>v.Id);
p=>idCollection.Contains(p.Code);
soga