Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Linq IF in WHERE instructions

13.07.2018 (👁1874)

Linq IF in WHERE instructions

 

How to build an IF-Else statement into a LINQ query.

 

Solution:

You can not build an IF query directly into the first build of a Linq query.

Instead, you must first build the Linq query, ending the query with .select (), and then use .where () to place several follow-up queries.

 

 

Example: C # Linq

 

string sFilter = "linq";

string sOrt = "de";

//------< Get Linq.Query >------

//*gets last 10 Projects with View_Sum

var query = (from project in _dbContext.tbl_Projects

             join u in _dbContext.tbl_Users on project.IDOwner equals u.IDUser into user_and_projects

 

             from un in user_and_projects.DefaultIfEmpty()

             join aspUser in _dbContext.Users on un.IDAspNetUser equals aspUser.Id into user_and_projects_and_aspUser

             from unAsp in user_and_projects_and_aspUser.DefaultIfEmpty()

 

             orderby project.IDProject descending

             select new { project, unAsp.UserName });

//--< filter: Text >--            

if (sFilter != "")

{

    query = query.Where(p =>

p.project.Title.Contains(sFilter)

|| p.project.Text.Contains(sFilter)

|| p.project.Auslastung.Contains(sFilter)

|| p.project.Branche.Contains(sFilter)

|| p.project.Dauer.Contains(sFilter)

|| p.project.Folder.Contains(sFilter)

|| p.project.Gehalt.Contains(sFilter));

 

}

//--</ filter: Text >--            

 

 

//--< filter: Ort >--            

if (sOrt != "")

{

    query = query.Where(p =>

    p.project.Ort.Contains(sOrt)

    || p.project.Land.Contains(sOrt)

    || p.project.Region.Contains(sOrt)

    );

}

//--</ filter: Ort >--

query.Take(100);

//------</ Get Linq.Query >------