Ich werde in Kürze mit der Arbeit an Xamarin beginnen und viel Code von Android Studio's Java nach C# übertragen.Wie führt Linq den Code zum Abrufen von Daten aus der Datenquelle tatsächlich aus?
in Java ich eine benutzerdefinierte Klassen verwende die Argumente Bedingungen usw. gegeben sind, wandeln sie SQL-Anweisungen und lädt dann die Ergebnisse auf die Objekte in das Modell des Projekts
Was von Ich bin nicht sicher ist, ob Linq a bessere Option zum Filtern solcher Daten.
Zum Beispiel, was gerade geschehen würde, ist somethng entlang dieser Linien
List<Customer> customers = (new CustomerDAO()).get_all()
Oder wenn ich eine Bedingung
habenList<Customer> customers = (new CustomerDAO()).get(new Condition(CustomerDAO.Code, equals, "code1")
Nehmen wir nun an ich die Klassen C# übertragen haben und ich möchte mach etwas Ähnliches wie im zweiten Fall.
So werde ich wohl etwas entlang der Linien von schreiben:
var customers = from customer
in (new CustomerDAO()).get_all()
where customer.code.equals("code1")
select customer
Ich weiß, dass die Abfrage nur dann ausgeführt werden, wenn ich den Zugriff auf Kunden tatsächlich versuchen, aber wenn ich mehrere Zugriffe auf Kunden (lassen Sie uns sag, dass ich später 4 foreach loops verwende) wird die get_all Methode 4 mal aufgerufen? oder werden die Ergebnisse bei der ersten Ausführung gespeichert?
Auch ist es effizienter (zeitweise weil Speicher wahrscheinlich ist es nicht), nur die get_all() -Methode zu behalten und linq verwenden, um die Ergebnisse zu filtern? Oder benutze mein bestehendes Setup, das in der Tat
ausführt Und lädt die Ergebnisse auf ein Objekt?
Vielen Dank im Voraus für jede Hilfe können Sie
bearbeiten bieten: ja ich weiß es sqlite.net die so ziemlich das tut, was mein daos tun, aber wahrscheinlich besser, und irgendwann ist, werde ich wahrscheinlich konvertieren alle meine Objekte, es zu benutzen, ich brauche nur um
Auf welche LINQ beziehen Sie sich? LINQ zu Objekten? LINQ zu EF? LINQ zu SQL? –
Ja, das Dao erstellt Liste –
Cruces