本文介绍了如何编写动态where子句加盟范围varible的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直工作在查询中使用LINQ,但我已经有一个动态的where子句遇到障碍。我想检查一个条件,如果真然后添加到哪里我的查询。问题是,在其中使用我的范围变量之一从我的联接之一。我的工作查询是如下:

I‘ve been working on a query using LINQ but I’ve run into a snag with a dynamic where clause. I want to check for a condition and if true then add that where to my query. The problem is that the where is using one of my range variables from one of my joins. My working query is below:

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.ProjType codeS一类,所以我想说

TypeDesc is a type in db.ProjTypeCodes, so I want to say

if (sProjType != null)
{
    query = query.Where(x => x.TypeDesc==sProjType);
}

但我只能用在哪里,在项目类型; AnonymousType#1不包含定义TYPEDESC......我怎么能使用动态凡ptc.TypeDesc?

But I can only use where with types in project; "AnonymousType#1 does not contain a definition for 'TypeDesc'..." How can I use a dynamic where on ptc.TypeDesc?

推荐答案

使用的IQueryable这里更多信息为什么

Use IQueryable here is more info why link

IQueryable<{CreateNewSelectObjects}> query = ... ;
if (sProjType != null)
{
    query = query.Where(x => x.TypeDesc==sProjType);
}

这篇关于如何编写动态where子句加盟范围varible的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-27 16:31