zwei Bedingungen, die where-Klausel einchecken, indem linq 2 verwendet wird

7

hi Ich habe eine Tabelle namens Produkte mit Spalten

%Vor%

another Tabellenkategorien mit Spalten

%Vor%

und der Name der Entität ist dbcontext ...

Wie kann ich die Produkte mit dem Kategorienamen "a" bekommen und der Produktpreis ist & gt; 500 und & lt; 10000

Ich benutze linq zu enitities ...

würde jedes pls helfen auf diesem .. eins ....

Vielen Dank ....

    
rockyashkumar 02.09.2011, 21:50
quelle

3 Antworten

19

Sie suchen nach logischen Operatoren, und diese sind diejenigen, die Sie in c # verwenden werden:

  • && logisch AND
  • || logisch OR
  • ! logisch NOT
  • ^ logisch (bitweise) XOR
  • COND ? TRUE-STATEMENT : FALSE-STATEMENT ternärer Operator

So wird Ihre zusammengesetzte Bedingung in Pseudocode wie folgt aussehen:

%Vor%

Wenn Sie jetzt keinen Fremdschlüssel in der DB haben, wenn Sie Ihren Kontext erstellt haben, wird es nur DBSets haben, und sie werden keine Navigationseigenschaften haben. Ihre einzige Option ist also die Antwort von Cubicle.Jockey.

Wenn Sie Fremdschlüssel in der DB haben, haben Sie Navigationseigenschaften für Ihre Entitätsobjekte und Sie können Folgendes tun:

%Vor%

Alternativ können Sie die LINQ-Erweiterungsmethoden direkt verwenden:

%Vor%

Wenn Sie eine Liste oder ein Array benötigen und dbcontext schließen möchten, rufen Sie entweder ToList oder ToArray für query :

auf %Vor%

Es gibt eine alternative Möglichkeit, dies mit Entity Framework (EF) zu tun - build-in EntitySQL Abfragesprache. Sie werden einen ähnlichen Ausdruck damit haben:

%Vor%

Dabei steht ProductsQuery für ObjectQuery<Product> .

    
vittore 02.09.2011, 21:56
quelle
4
%Vor%

Dies gibt Ihnen ein IQueryable mit den gefilterten Ergebnissen zurück.

Basierend auf der folgenden Antwort von Vittore wäre, wenn es eine Fremdschlüssel-Beschränkung gibt, dies die passendere Version:

%Vor%     
Cubicle.Jockey 02.09.2011 21:54
quelle
0

Fügen Sie die Produkt- und Kategorietabellen zu category_id hinzu und verwenden Sie dann where , um product_price herauszufiltern.

    
MAK 02.09.2011 21:55
quelle