If-Anweisung und Aufgaben in lambda-Ausdrücken

Habe ich eine lambda-Anweisung, die eine Zuordnung wie dieses:

public enum Status
{
    Completed,
    InComplete,
    Ok
}

Abfrage:

var courses = query.Select(c => new SomeModel
      {
          Status = c.someQuery() ? Status.Completed : Status.Ok
      });

So, ich möchte den Status haben mehrere if-Anweisungen und nicht nur eine ternäre operation. Für zB.

var courses = query.Select(c => new SomeModel
      {
          Status = if(c.someQuery())
                   { 
                       return Status.Completed;
                   }
                   else if(c.someOtherQuery())
                   {
                       return Status.InComplete;
                   }
                   else if(c.someOtherQuery1())
                   {
                       return Status.Ok;
                   }
      });

So, wie ich etwas erreichen wollen? Ich bin mit Entity framework-ORM.

  • Es ist sehr wichtig zu unterscheiden, ob Sie mit einem ORM wie L2S oder Entity Framework, übersetzt Ihre Lambda-Ausdrücke in SQL (in dem Fall Ihre Möglichkeiten sind stark begrenzt) oder ob es nur ein gewöhnlicher lambda. In anderen Worten, was ist der Typ von query?
  • Abfrage kann Betriebssystem auf den Zusammenhang someQuery werden kann, schließt sich, wheres, jeder, usw kombiniert.
  • Wenn die Abfrage L2S-oder EF können Sie brauchen, um aufzuzählen, auf die ursprüngliche Abfrage ( wie etwa das aufrufen .ToList()) vor der Ausführung von ternären statement gegen es.
InformationsquelleAutor Shawn Mclean | 2012-06-05
Schreibe einen Kommentar