2 Stimmen

Linq-to-sql - Abfrage wird nicht gefiltert

Ich bin wirklich neu zu Linq und bin mit Linq-to-Sql wie folgt. Im folgenden Beispiel wird meine Where-Klausel jedoch nie ausgeführt, und die resultierende Abfrage versucht, alle Datensätze aus meiner Tabelle abzurufen und ignoriert dabei sogar die Take-Methode.

Kann mich jemand darauf hinweisen, was ich falsch mache?

        var baseQry = db.Table;
        baseQry.Where(a => a.tab_id == theId);
        baseQry.Select(o => new
        {
            o.name,
            o.display_name,
            o.type,
            o.info,                
            time_stamp = (Convert.ToDateTime(o.timestamp).ToLongDateString())
        }).Take(10);

       baseQry.ToList();

3voto

Matt Peterson Punkte 4441

Ihre zweite Zeile...

baseQry.Where(a => a.tab_id == theId);

...ist im Grunde genommen ein No-op, da die resultierende Abfrage nicht in Ihre Select-Klausel übernommen wird.

Sie müssen es so ändern:

var baseQry = db.Table;

var results = baseQry
    .Where(a => a.tab_id == theId)
    .Select(o => new
        {
            o.name,
            o.display_name,
            o.type,
            o.info,                
            time_stamp = (Convert.ToDateTime(o.timestamp).ToLongDateString())
        })
    .Take(10)
    .ToList();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X