具有多个条件的Linq@Where子句

具有多个条件的Linq@Where子句,linq,Linq,这是我的导出ui 这是我的代码: var wrlist = db.Tbl_WorkRequest.ToList().Where(c => c.WR_Status == wrstatus && (wrtype.Length != 0) && c.WR_F

这是我的导出ui

这是我的代码:

var wrlist = db.Tbl_WorkRequest.ToList().Where(c => c.WR_Status == wrstatus &&
                                                    (wrtype.Length != 0) &&
                                                    c.WR_Family == wrfamily &&
                                                    wrfamily.Length!=0)
                                        .Select(d => new {
                                            WR_Title = d.WR_Title.ToString(),
                                            WR_Type = d.WR_Type.ToString(),
                                            WR_Family = d.WR_Family.ToString(),
                                            WR_Status = d.WR_Status.ToString(),
                                            WR_LocationAsset = d.WR_LocationAsset.ToString(),
                                            WR_AssetName = d.WR_AssetName.ToString(),
                                            WR_Requestor = d.WR_Requestor.ToString()
                                        });
问题是,如果我只在dropdownlist:family中选择zone,它将生成正确的列表。 但当我选择dropdownlist:family&status时,它不会产生任何结果

这是表格:


我将更改您的代码以检查每个筛选条件并添加相应的筛选,然后转换为列表:

var wrq = db.Tbl_WorkRequest.AsQueryable();
if (wrstatus.Length > 0)
    wrq = wrq.Where(wr => wr.WR_Status == wrstatus);
if (wrfamily.Length > 0)
    wrq = wrq.Where(wr => wr.WR_Family == wrfamily);

var wrlist = wrq.Select(d => new {
                    WR_Title = d.WR_Title.ToString(),
                    WR_Type = d.WR_Type.ToString(),
                    WR_Family = d.WR_Family.ToString(),
                    WR_Status = d.WR_Status.ToString(),
                    WR_LocationAsset = d.WR_LocationAsset.ToString(),
                    WR_AssetName = d.WR_AssetName.ToString(),
                    WR_Requestor = d.WR_Requestor.ToString()
                })
                .ToList();

您确定从UI发送的状态值(
wrstattus
)与数据库匹配吗?是否检查生成的SQL?什么是区域?什么是下拉列表:家庭?什么是dropdownlist:家庭和地位,这意味着什么?为什么要在
Where
之前使用
ToList
,将整个表拉入内存?您需要在
WR\uuu
字段上放置
ToString()
的字段类型是什么?为什么您要与
wrstatus
进行比较,然后测试
wrtype.Length