Esta es mi sintaxis Linq que estoy usando para mi modelo de entidad
IQueryable<string> objEmployee = null;
objEmployee = from res in _db.EMPLOYEEs
where (res.EMAIL == givenInfo || res.USER_NAME == givenInfo)
select res.EMAIL;
¿Cómo puedo seleccionar varias columnas? También quiero seleccionar res.ID. ¿Y cómo puedo recibirlos? IQueryable no funcionará, creo. Y esto se llama Linq to SQL, ¿verdad?
c#
linq
entity-framework
Riz
fuente
fuente
Respuestas:
Como han indicado las otras respuestas, debe utilizar un tipo anónimo.
En lo que respecta a la sintaxis, personalmente prefiero el encadenamiento de métodos. El método de encadenamiento equivalente sería: -
AFAIK, la sintaxis declarativa LINQ se convierte en una cadena de llamadas a métodos similar a esta cuando se compila.
ACTUALIZAR
Si desea el objeto completo, solo tiene que omitir la llamada a
Select()
, es decirfuente
Puede utilizar tipos anónimos, por ejemplo:
fuente
select new { Diff = (DateTime.Now - debt.ClaimDate), Amount = debt.Amount}
. El formulario utilizado en la respuesta es una abreviatura, donde el nombre del miembro en la expresión de inicialización se utiliza como un nombre de campo de tipo anónimo. Egnew {res.EMAIL, res.USER_NAME}
es una abreviatura denew {EMAIL = res.EMAIL, USER_NAME = res.USER_NAME}
. En caso de que haya una expresión, como en su caso con las fechas, la taquigrafía no se aplica, de ahí el error del compilador.O puedes usar
Explicacion:
Seleccione empleado de la base de datos como res.
Filtre los detalles del empleado según la condición where.
Seleccione los campos obligatorios del objeto de empleado creando un objeto anónimo usando new {}
fuente