Я хочу получить сумму кандидатов, которые подали заявку на конкретную позицию, ее не следует сохранять в виде столбца.
Моя модель проста:
У нас есть позиции:
сетевой разработчик
Java-разработчик
У нас есть заявители:
У нас есть кандидаты на позицию
В этом столбце или свойстве я хочу знать, сколько человек подало заявкуна каждую позицию, в зависимости от статуса.Итак, в моем представлении mvc я хочу показать что-то вроде:
Позиция применена Принята Отклонено ... другой статус
.net разработчик 5 3 2
java developer 3 2 1
Реальная проблема здесь - это запрос linq, который я не очень опытный.
РЕДАКТИРОВАТЬ: я думаю, что мне нужно изменить, где должен быть закодирован запрос linq, я полагаю, что он должен быть вКласс ApplicantPosition вместо Position, я также изменил типы Position и Application на ICollection.
Пожалуйста, смотрите измененный код.
public class Position
{
public int id { get; set; }
[StringLength(20, MinimumLength=3)]
public string name { get; set; }
public int yearsExperienceRequired { get; set; }
}
public class Applicant
{
public int ApplicantId { get; set; }
[StringLength(20, MinimumLength = 3)]
public string name { get; set; }
public string telephone { get; set; }
public string skypeuser { get; set; }
public ApplicantImage photo { get; set; }
}
public class ApplicantPosition
{
public virtual ICollection<Position> appliedPositions { get; set; }
public virtual ICollection<Applicant> applicants { get; set; }
public DateTime appliedDate { get; set; }
public int StatusValue { get; set; }
public Status Status
{
get { return (Status)StatusValue; }
set { StatusValue = (int)value; }
}
[NotMapped]
public int numberOfApplicantsApplied
{
get
{
var query =
from ap in appliedPositions
select new
{
positionName = g.Key.name,
peopleApplied = g.Count(x => x.Status == Status.Applied),
};
return query.Count(); ---??
}
}
}