【发布时间】:2017-11-21 16:03:43
【问题描述】:
如果用户为这些值提供输入,我需要在查询中添加 where 子句。到目前为止,我正在尝试使用以下内容,但忽略了 where 子句。我的意思是只返回姓氏以 Lewis 开头的学生,但结果我没有得到。
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();
我得到的结果是:
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
【问题讨论】:
-
query = query.Where(....是你需要做的。 -
当然是 - 您没有将结果存储在任何地方。
-
众所周知,在 C# 中没有什么是真正有效的 - 尝试 bing.com/search?q=c%23+linq+where+does+not+work 甚至像 C# string replace does not work 这样的简单东西。 :)