我在stackoverflow论坛上搜索过并发现了这个错误,但每次都有不同的含义,我希望有人帮助我解决这个问题。
public IEnumerable<Project> FindRange(string filterExpression, string sortingExpression, int startIndex, int count)
{
try
{
using (BusinessContext context = new BusinessContext())
{
if (!String.IsNullOrWhiteSpace(filterExpression))
return context.Projects
.Where(filterExpression)
最后一行是错误之一...
你知道为什么会这样吗?我已经添加了所需的所有使用和dll:
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
我错过了什么?我的代码结构相同,工作......
答案 0 :(得分:4)
您的filterexpression参数不应该是string
- 它应该是Func<>
。
请参阅http://msdn.microsoft.com/en-us/library/system.linq.enumerable.where(v=vs.100).aspx
答案 1 :(得分:1)
看起来您可能正在尝试使用Dynamic Linq库。在这种情况下,您需要确保added the NuGet package to your project然后包含此命名空间:
using System.Linq.Dynamic;
答案 2 :(得分:1)
如果你的BusinessContext
类有一个字符串属性,比如你想要过滤的名字,那么你的where表达式应该类似于
.Where(x => x.Name.ToLower().StartsWith(filterExpression.ToLower()))