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 >------
|