c# - 为什么这个 Linq Where 子句不过滤结果

标签 c# asp.net-mvc linq

我是 Linq 和 MVC 的新手,经过大量的搜索和学习才达到这一点。

我有以下成功接收参数“code”的方法。

    public ActionResult GetIssueList(string code)
    {
        //dynamic fill of project code dropdown on selection of customer code drop down
        ProjectManager pm = new ProjectManager();

        var projectcodes = pm.SelectAllProjects();
        var projects = new List<Project>();

        foreach (var proj in projectcodes)
        {
            projects.Add(proj as Project);
        }
        return Json(projects.Where(x => x.CustomerCode == code).ToList());
    }

正在从数据库中检索数据,但是where子句没有过滤掉等于参数的数据。

最佳答案

通过执行调试,确保项目肯定没有CustomerCodecode .不过,我对你的问题是“项目代码中的项目是 Project 对象吗?如果不是,你不能将它们 as castProject ,而是必须使用该代码 new Projects

此外,您在上面编写的所有内容都可以很容易地重写为一行代码。 (你可能必须在 new Project(projectCode) 之前做一个 .ToList<Project>(),但我不知道你的类型所以我不会假设)

public ActionResult GetIssueList(string code)
{
    return Json(new ProjectManager()
        .SelectAllProjects()
        .Select(proj => proj as Project)
        .Where(proj => proj.CustomerCode == code)
        .ToList();
}

编辑:在上述方法的返回语句中放置一个断点,并在比较之前检查列表中的项目是否具有预期的 CustomerCode。

关于c# - 为什么这个 Linq Where 子句不过滤结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23787472/

相关文章:

c# - .NET 的 STEP/EXPRESS 工具

asp.net-mvc - 如何从 ASP.NET MVC 中的 JSONResult 方法重定向到 Controller 操作?

c# - 手动选择相关表数据(SELECT N+1问题)LINQ to SQL

c# - 带有点符号的 Linq - 哪种形式更好或者这两者之间有什么区别?

c# - 将(大型)XML 文件转换为关系 SQL

c# - 从列表框中拖放项目时出现一些错误

c# - 使用换行符将 xml 字符串读入文本框

c# - C#.NET 中的 GOTO 语句

c# - 通过 VS 2015 RC 进行非 Azure 部署

javascript - OnClick 事件仅获取第一个动态创建的行/id