2016-07-10 2 views
0

ich die folgende Störung erhalte auf:Erweiterung Methode, wo und wählen Sie arbeiten nicht

A query body must end with a select clause or a group clause 

bin ich ein wenig verwirrt darüber, warum dies ist mit Erweiterungsmethoden in Linq verwenden, kann mir jemand in die richtige Richtung? Vielen Dank!

Code:

using (var db = new DB()) 
{ 
    var result = from u in db.users 
    .Where(u.username == txtUsername.Text && u.password == txtPassword.Text) 
    .Select(a => new User 
    { 
    id = a.user_id, 
    name = a.username, 
    roleID = a.role_id 
    }) 
    .ToList(); //error here 
} 

Antwort

4

Sie versuchen, sowohl die Abfrage und Methodensyntax zu mischen - entfernen Sie die 'von u in Benutzer:

using (var db = new DB()) 
{ 
    var result = db.users 
    .Where(u => u.username == txtUsername.Text && u.password == txtPassword.Text) 
    .Select(a => new User 
    { 
    id = a.user_id, 
    name = a.username, 
    roleID = a.role_id 
    }) 
    .ToList(); //error here 
} 

Die u innerhalb der Lambda deklariert wird (u => ...) und implizit in den Benutzer

eingegeben wird
1

Sollte es nicht nur

sein
db.users.Where(u.username... 

Statt

from u in db.users 
    .Where(u.username 

Sie versuchen, beide LINQ SQL-ähnliche Syntax und Erweiterung Methode verwenden

Verwandte Themen