我一直在使用LINQ查询,但我碰到了一个动态where子句的障碍。我想检查一个条件,如果是的话,然后添加到我的查询。问题是,哪里在使用我的一个连接的范围变量之一。我的工作查询如下:如何写联接范围变量的动态where子句
var query = from project in db.ProjMasters
join pd in db.ProjDetails on project.ProjMasterID equals pd.ProjMasterID
join dc in db.DivCodes on project.DivisionCode equals dc.DivCode1
join ec in db.EmpCodes on project.ProjManager equals ec.UserNm
join ptc in db.ProjTypeCodes on pd.ProjTypeCode equals ptc.ProjTypeCode1
join psc in db.ProjStatusCodes on pd.ProjStatusCode equals psc.ProjStatusCode1
where pd.ProjDeleteDate == null
orderby project.Title
select new
{
project.ProjMasterID,
project.Title,
pd.ProjDesc,
pd.ContractNum,
pd.ProjDetailID,
dc.DivNm,
}
if (sTitle != null)
{
query = query.Where(x => x.Title.Contains(sTitle));
}
TYPEDESC是db.ProjTypeCodes一个类型,所以我想说
if (sProjType != null)
{
query = query.Where(x => x.TypeDesc==sProjType);
}
但我只能用其中在项目类型; “AnonymousType#1不包含'TypeDesc'的定义...”我如何在ptc.TypeDesc中使用动态的地方?
那么,错误是明确的,你没有选择ptc.TypeDesc,只需将其添加到您的选择... – Gusman
谢谢古斯曼!如果你有任何想法,我已经用这个圈子走了多久。 – KFP