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,我如何获取过滤数据? (我不想在数据库中获取整个数据)
答案 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();