2012-09-25 14 views
7

Estoy intentando llenar una lista desplegable con una consulta Linq. Sin embargo, necesito tener FirstName y Apellido como un campo. Concatenar en el DDL.DataTextField devuelve un error de campo no encontrado.SELECCIONAR COMO en Linq con la cláusula WHERE

SQL sería algo como esto:

SELECT (FirstName + SPACE + Surname) AS FullName FROM Table WHERE ID=1 

LINQ actual:

public IList<mytable> GetNames(int p_ID) 
{ 
    return db.mytable.Where(c => c.ID_fk == p_ID).ToList(); 
} 

Respuesta

12

Se puede usar esta, si única necesita el nombre completo:

public IList<string> GetNames(int p_ID) 
{ 
    return db.mytable.Where(c => c.ID_fk == p_ID) 
        .Select(x => x.FirstName + " " + x.Surname) 
        .ToList(); 
} 
+0

Podríamos usar '(de C en db.mytable donde c.ID_fk == p_id seleccionar (c.FirstName + "" + c.Surname)). ToList() 'también, ¿no? – Amedio

+1

@Amedio: Sí, creo que eso también funcionaría. Sin embargo, prefiero la sintaxis de métodos en la mayoría de los casos. Lo encuentro más claro. –

2

Puede intentar esto:

return db.mytable.Where(c => c.ID_fk == p_ID).Select(c=>c.FirstName + " " + c.Surname). ToList(); 

por lo que tienen una lista de cadenas

1

Usted puede tratar con

return db.mytable.Where(a => a.ID_fk==p_ID) 
        .Select(a => a.FirstName + "-" + a.Surname) 
        .ToList(); 
Cuestiones relacionadas