2011-03-18 4 views
0

J'écris une requête linq dans la syntaxe de requête et je me demande comment ajouter une autre clause where. Fondamentalement, je suit:requête linq avec condition

var test = from t in MyDC.TheTable 
      where t.UserID == TheUserID 
      where t.DateDone.Date == TheDate.Date 
      select new MyModel {.....}; 

theTable a une colonne appelée LinkedID et cette colonne est également dans une autre table appelée ColorStatus (un nombre compris entre 1 et 10). Je cherche à écrire la clause where "où le LinkedID dans la table ColorStatus est inférieur à 7".

Merci.

Répondre

2

Vos informations « une autre table appelée ColorStatus » n'a pas de sens ici.

var test = from t in MyDC.TheTable 
      where t.UserID == TheUserID 
       && t.DateDone.Date == TheDate.Date 
       && t.LinkedID < 7   
      select new MyModel {.....}; 

Probablement Je n'ai pas votre idée, voici un exemple de join peut vous aider.

var test = from t in MyDC.TheTable 
      join x in MyDC.ColorStatus 
      on t.LinkedID == x.LinkedID 
      where t.UserID == TheUserID 
       && t.DateDone.Date == TheDate.Date 
       && x.AnotherField == 1 
      select new MyModel {.....}; 
4

Juste une suggestion sur l'amélioration de la déclaration que vous avez. Vous pouvez réellement fusionner les deux où les conditions dans un seul. && signifie « ET »

Where t.UserID == TheUserID && t.DateDone.Date = TheDate.Date 
+0

ok, merci, je vais faire le changement. Je travaille toujours sur l'ajout de la clause finale Where. – frenchie