Попытка связать запросы linq из-за создания простого фильтра для данных в моем представлении.Цепочки запросов LINQ
public ActionResult Index(int? courseId, string grade, int? statusId)
{
var query = from s in db.Students
join e in db.Enrollments on s.ID equals e.ID
join c in db.Courses on e.CourseID equals c.ID
orderby e.Grade.HasValue descending, e.Grade, s.StatusID
select new { s, e, c };
if (courseId != null)
{
query = query.Where(q => q.e.CourseID == courseId);
}
if (!string.IsNullOrEmpty(grade))
{
query = query.Where(q => q.e.Grade.Equals(grade));
}
if (statusId != null)
{
query = query.Where(q => q.s.StatusID == statusId);
}
query.Select(q => new ViewModels.ReportView
{
ID = q.s.ID,
Name = q.s.FirstName + " " + q.s.LastName,
Course = q.c.Title,
Grade = q.e.Grade,
GraduationDate = q.s.GraduationDate,
Status = q.s.Status.Title
});
Linq заставляет вас закончить запросы с избранной или группой, которая заставляет меня ставить ненужный выбрать на старте. По какой-то причине это приводит к тому, что он игнорирует последний выбор и просто использует начальную.
Я попытался группировки вместо этого e.ID, но это не работает, как ожидалось ...
Я уверен, что это просто, но я потерял, какие идеи?
могли бы вы уточнить ваш вопрос? – Default
Вы не сохраняете 'query.Select (q => new ViewModels.ReportView..' в конце, что является результатом того, что вы пытаетесь сохранить. Это новая переменная и возвращает нужную вам модель. помогли вам? –
Когда это так, подумайте, что пришло время отдохнуть. Chhers – user3112059