我一直在使用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