2

我在整个 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)

最后一行是错误之一...

你知道为什么会这样吗?我已经添加了所有需要的 usings 和 dll,即:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;

我错过了什么?我的代码结构相同,工作......

4

3 回答 3

4

您的 filterexpression 参数不应该是string- 它应该是Func<>.

请参阅http://msdn.microsoft.com/en-us/library/system.linq.enumerable.where(v=vs.100).aspx

于 2013-08-12T15:05:59.263 回答
1

看起来您可能正在尝试使用Dynamic Linq库。在这种情况下,您需要确保已将NuGet 包添加到项目中,然后包含此命名空间:

using System.Linq.Dynamic;
于 2013-08-12T15:10:46.473 回答
1

如果您的BusinessContext类有一个字符串属性,例如您想要过滤的名称,那么您的 where 表达式应该类似于

.Where(x => x.Name.ToLower().StartsWith(filterExpression.ToLower()))
于 2013-08-12T15:12:54.170 回答