我想使用LINQ将字符串字段与字符串字段进行比较,我编写了以下扩展方法进行比较,但无法正常工作。
public static bool Contains(this string source, string[] keys)
{
foreach (var item in keys)
{
if (source.Contains(item))
return true;
}
return false;
}
这是我的查询:
string[] keys = key.Split('+');
var pages = context.Pages.Where(x => x.Title.Contains(keys));
我得到的错误是:
LINQ to Entities无法识别方法“ Boolean Contains(System.String,System.String [])”方法,并且该方法无法转换为商店表达式。
您不能像这样在LINQ中使用您自己的自定义方法-但您可以使用普通的LINQ运算符重写它:
string[] keys = key.Split('+');
var pages = context.Pages.Where(x => keys.Any(key => x.Title.Contains(key)));
如果这不起作用,我怀疑它在EF中基本上是不可行的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句