我正在构建一个使用Entity Framework 6.1.3查询数据库数据的应用程序。
我已经使用过这个功能:
private IQueryable<T> SearchPropertyText(IQueryable<T> records, Func<T, string> property, TextSearch search)
{
switch (search.Mode)
{
case TextSearchMode.ContainIgnoreCase:
records = records.Where(x => property(x).Contains(search.Text));
break;
case TextSearchMode.Equal:
records = records.Where(x => property(x).Equals(search.Text));
break;
case TextSearchMode.EqualIgnoreCase:
records = records.Where(x => property(x).Equals(search.Text, StringComparison.OrdinalIgnoreCase));
break;
default:
records = records.Where(x => property(x).Contains(search.Text));
break;
}
return records;
}
此功能用于帮助我通过传递属性名称和文本搜索来过滤文本属性。例如:
users = SearchPropertyText(users, user => user.Email, emailSearch);
此功能在Entity Framework Core 1.1.1上正常运行。但是当我将此代码复制到Entity Framework 6.1.3时。它给了我一个例外:
LINQ表达式节点类型&#39; Invoke&#39; LINQ to Entities不支持。
有人可以帮我吗?
谢谢,