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-Query: IF in WHERE Anweisungen

13.07.2018 (👁2764)

Linq IF in WHERE Anweisungen

 

Wie kann man eine IF-Else Anweisung in eine LINQ Abfrage einbauen.

Lösung:

Man kann eine IF-Abfrage nicht direkt in den ersten Aufbau einer Linq-Query einbauen.

Anstatt dessen muss man erst die Linq-Abfrag erstellen, wobei die Query mit .select() endet und hieraus mit .where() mehre Folge-Abfragen ertellen.

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