Linq to SQL - 忽略null或零的搜索参数

Sim*_*mon 6 c# linq asp.net-mvc

我有一个搜索表单,用户可以在其中输入一个到多个参数(数据,状态,类型,ID,摘要,描述),并将其余参数留空.

这是我的基本搜索的Linq to SQL代码.有没有办法检查Linq中的每个参数是否为零,空或空字符串?

List<RequestStatusModel> objRequestStatus = new List<RequestStatusModel>();
var query = from r in SimCareDB.Requests
            where r.CustomerID == 31       
            select (new RequestStatusModel
            {
                RequestID = r.RequestID,
                RequestTitle = r.RequestTitle,
                DateAdded = r.DateAdded.ToString(),
                DateChanged = r.DateChanged.ToString(),
                RequestStatusID = r.StatusID
            });
Run Code Online (Sandbox Code Playgroud)

谢谢!

Kin*_*ake 0

如果您只想在通过某些条件时进行过滤,您应该这样做

var objRequestStatus = new List<RequestStatusModel>();
    var query = from r in SimCareDB.Requests
                where r.CustomerID == 31

if (String.IsNullOrEmpty(r.RequestID))
    objRequestStatus = objRequestStatus.Where(x => x.RequestID == r.RequestID);

if (String.IsNullOrEmpty(r.RequestTitle))
    objRequestStatus = objRequestStatus.Where(x => x.RequestTitle == r.RequestTitle);

//you other filters here
Run Code Online (Sandbox Code Playgroud)

这将根据传递的请求将表达式设置为您想要的内容