LINQ忽略带有方法语法的where子句

Cin*_*way -7 c# linq

如果用户为这些值提供输入,我需要在查询中添加where子句.到目前为止,我正在尝试使用follow,但where子句被忽略.我的意思是,只有以刘易斯开头姓氏的学生才能归还,但我不会因此而得到.

            var query = db.STUDENT
            .Where(x => x.STUDENT_CHANGE_IND == null);

        if (!string.IsNullOrEmpty(lastName)) query.Where(x => x.STUDENT_LAST_NAME.StartsWith("Lewis"));
        if (!string.IsNullOrEmpty(firstName)) query.Where(x => x.STUDENT_FIRST_NAME.StartsWith(firstName));
        if (!string.IsNullOrEmpty(spridenId)) query.Where(x => x.STUDENT_ID.Contains(spridenId));

        var y = query.Take(10).ToList();
Run Code Online (Sandbox Code Playgroud)

我得到的结果是:

Student ID LastName

002 GUAR - HEMAR    
021 GUAR - Citibank SLC 
08092017    DO NOT USE 92 number mess up    
099 GUAR - ChaseJPM 
161 GUAR - WELLSG   
191 GUAR - TERI 
Run Code Online (Sandbox Code Playgroud)

Den*_*s_E 7

你需要说

query = query.Where(x => x.STUDENT_LAST_NAME.StartsWith("Lewis"));
Run Code Online (Sandbox Code Playgroud)

而不仅仅是

query.Where(x => x.STUDENT_LAST_NAME.StartsWith("Lewis"));
Run Code Online (Sandbox Code Playgroud)