Ich verwende LINQ zu Entitäten.Warum funktioniert dieser linq-Ausdruck nicht?
Ich habe eine Tabelle namens Student; Es hat ID und Name wie es Spalten ist. ID ist ein Primärschlüssel.
Ich möchte in der Lage sein, den Namen des Schülers auszuwählen und die Anzahl der Schüler mit dem gleichen Namen zu erhalten.
Also zum Beispiel würde ich dies als meine Tabellendaten haben.
ID Name
1 Bob
2 Will
3 Bob
Nach Ausführen der Abfrage würde ich eine Liste der Schüler Objekte zurückgeben, die so aussehen.
Name Quantity
Bob 2
Will 1
Ich denke, es ist ähnlich wie die Tags-Seite von Stackoverflow funktioniert; Es hat den Namen und die Menge.
Anyways, ich habe eine Teilklasse namens Student.cs erstellt, in der ich eine Quantity-Eigenschaft wie folgt hinzugefügt habe.
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; }
}
}
}
ich kam mit dieser, aber ich erhalte eine Fehlermeldung ..
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;
}
Der Fehler, ich bin so wie immer etwas kann nicht konvertieren von Typ Anonymous auf die Schülerliste. Hat es etwas damit zu tun, das Mengenfeld, das ich in der Teilklasse hinzugefügt habe, nicht zu erkennen?
Danke!
Einige allgemeine Hinweise: stop var, bis Sie mehr Erfahrung zu bekommen . Wenn Sie versucht hätten, 'IQueryable = (from ...' zu verwenden, hätten Sie das Problem viel schneller lösen können. –