LINQ To SQL 拼接查詢條件
阿新 • • 發佈:2018-12-30
private void DoQuery() { Expression<Func<DataAccess.e_Score_V, bool>> expr = n => GetCondition(n); List<DataAccess.e_Score_V> lstScore = _Context.e_Score_V.Where(expr.Compile()).OrderByDescending(e => e.Score).Take(this.Records).ToList(); this.rptList.DataSource = lstScore; this.rptList.DataBind(); } private bool GetCondition(DataAccess.e_Score_V entiey) { bool result = true; if (ValidationHelper.IsNumeric(this.txtUserID.Text)) { result = entiey.UserID == int.Parse(this.txtUserID.Text); } if (!string.IsNullOrEmpty(this.dropScoreType.SelectedValue)) { result &= entiey.ScoreType == int.Parse(this.dropScoreType.SelectedValue); } if (ValidationHelper.IsDateTime(this.txtFromDate.Text)) { result &= entiey.ScoreDate >= DateTime.Parse(this.txtFromDate.Text); } if (ValidationHelper.IsDateTime(this.txtEndDate.Text)) { result &= entiey.ScoreDate <= DateTime.Parse(this.txtEndDate.Text); ; } return result; }