Estoy usando LINQ to Entities.¿Por qué esta expresión linq no funciona?
Tengo una tabla llamada Estudiante; tiene ID y Nombre como sus columnas. ID es una clave principal.
Quisiera poder seleccionar el nombre del Estudiante y obtener la cantidad de Estudiantes con el mismo Nombre.
Así que, por ejemplo, tendría esto como datos de mi tabla.
ID Name
1 Bob
2 Will
3 Bob
Después de realizar la consulta, devolvería una lista de objetos estudiantiles con el siguiente aspecto.
Name Quantity
Bob 2
Will 1
Supongo que es algo similar a cómo funciona la página Etiquetas de stackoverflow; Tiene el nombre y la cantidad.
De todos modos, creé una clase parcial llamada Student.cs en la que agregué una propiedad de Cantidad como esta.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MySite.Models
{
public partial class Student
{
private int _quantity;
public int Quantity
{
get { return _quantity; }
set { _quantity = value; }
}
}
}
me ocurrió esto, pero yo estoy recibiendo un error ..
public IQueryable<Student> FindStudentsDistinctWithQuantity()
{
/*SELECT Name, COUNT(Name) AS Quantity
FROM Student
GROUP BY Name*/
var students= (from s in db.Students
group s by s.Name into g
select new {Name = g.Key, Quantity = g.Count()});
return students;
}
El error que estoy consiguiendo dice algo así como que no se puede convertir de tipo anónimo a la lista del Estudiante. ¿Tiene algo que ver con que no reconozca el campo de cantidad que agregué en la clase parcial?
Gracias!
Algunos consejos generales: dejar de usar var hasta que obtenga más experiencia . Si hubiera intentado utilizar 'IQueryable = (a partir de ...', habría puesto a cero mucho más rápido en el problema. –