使用LINQ语句报错,不支持p.SearchKeyword.Split(',')
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用LINQ语句报错,不支持p.SearchKeyword.Split(',')相关的知识,希望对你有一定的参考价值。
var products = db.Products.Where(p => p.SearchKeyword.Split(',').Contains(keyWord)).ToList();
有一个产品表product,有字段SearchKeyword由逗号隔开的字符串组成,如"鲜花,绿植",我想根据关键字查询,输入一个关键字keyWord,如果Searcheyword字符串中包含该关键字则将该产品选出。不知道有没有描述清楚,求大神帮忙
Linq to SQL或是Entity Framework吗?
因为最后会生成 SQL 语句去数据库查询,而 Split 方法无法翻译为相应的 SQL 函数,所以说不支持。
如果你的输入关键字没有逗号的话,直接用Contains试试。
var products = (from product in db.Productswhere product.SearchKeyword.Contains(keyWord)
select product).ToList();追问
使用逗号隔开是为了方便使用关键字查询,相当于给产品多个查询标签,不知道我的思路是否有问题,或者有其他好的解决方案吗?谢谢
参考技术B //这样试试:var pro=(from p in Products
where p.SearchKeyword.Split(',').ToList().Contains(keyWord)
select p).ToList();
或
var pro=(from p in Products
where p.SearchKeyword.IndexOf(keyWord)>-1
select p).ToList();本回答被提问者采纳 参考技术C var pro=(from p in Products
where p.SearchKeyword.Split(',').Contains(keyWord)
select p).ToList();
linq中日期格式转换或者比较,程序报错说不支持方法的解决办法
以上是关于使用LINQ语句报错,不支持p.SearchKeyword.Split(',')的主要内容,如果未能解决你的问题,请参考以下文章
linq中日期格式转换或者比较,程序报错说不支持方法的解决办法
LINQ体验(18)——LINQ to SQL语句之视图和继承支持
LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别
{
using (var _context = new hotelEntities())
{
var rq = DateTime.Now.Date;
var query = from q in _context.UV_RZJL_RZRY_Single
where SqlFunctions.DateDiff("day",rq,q.LDRQ)>0
select q;
Assert.Inconclusive(query.Count().ToString());
}
}
可以用SqlFunctions,命名空间using System.Data.Objects.SqlClient;