Я использую LINQ to Entities.
У меня есть таблица под названием «Студент»; у него есть идентификатор и имя в качестве столбцов. ID — это первичный ключ.
Я хотел бы иметь возможность выбрать имя студента и получить количество студентов с тем же именем.
Так, например, у меня было бы это как данные моей таблицы.
ID Name
1 Bob
2 Will
3 Bob
После выполнения запроса я бы вернул список объектов Student, выглядящий следующим образом.
Name Quantity
Bob 2
Will 1
Я предполагаю, что это похоже на то, как работает страница тегов stackoverflow; У него есть название и количество.
В любом случае, я создал частичный класс под названием Student.cs, в который я добавил свойство Quantity, подобное этому.
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; }
}
}
}
Я придумал это, но я получаю сообщение об ошибке ..
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;
}
Ошибка, которую я получаю, говорит что-то вроде «Невозможно преобразовать тип Anonymous в список Student». Это как-то связано с тем, что я не распознал поле количества, которое я добавил в разделяемый класс?
Спасибо!
IQueryable<Student> = (from ..., вы бы гораздо быстрее сориентировались в проблеме. - person   schedule 28.01.2010