在Entity Framework查询中添加“where”不起作用?

时间:2014-12-06 03:14:17

标签: entity-framework

        ERPEntities dbEntities = new ERPEntities();
        var clsCode = "001";
        var items = dbEntities.clsitem.Select(aa => aa);
        if (clsCode != null)
            items.Where(aa => aa.clscode == clsCode);
        var _test = items.ToList();

clsitem中有21行。

执行后,_test.Count()的结果为21(表示item.where())无效。

但如果我使用var _test = dbEntities.clsitem.Where(aa => aa.clscode == clsCode);,那么我会得到我所期望的。

为什么?

如果在执行查询之前需要使用If表达式来查看whe clsCode是否为null,我如何获取过滤数据? (我不想在数据库中获取整个数据)

1 个答案:

答案 0 :(得分:3)

你没有得到物品的结果。 Where不会更改源集合。此方法返回新集合。

    ERPEntities dbEntities = new ERPEntities();
    var clsCode = "001";
    var items = dbEntities.clsitem.Select(aa => aa);
    if (clsCode != null)
        items = items.Where(aa => aa.clscode == clsCode); // this string
    var _test = items.ToList();