ASP.NET MVC Query не показывает отличительные значения - PullRequest
0 голосов
/ 15 марта 2019

Я использую следующий запрос для использования в диаграммах Google. Это работает хорошо, но это не показывает отчетливые месяцы. Есть ли способ суммировать все HoursTaken на MonthOfHoliday, чтобы не иметь разных значений?

 var querythpmpro = (from r in db.HolidayRequestForms
                     where r.EmployeeID == id
                     select new { Count = r.HoursTaken, Value = r.MonthOfHoliday.ToString() }).OrderBy(e => e.Value);

Сообщение об ошибке из консоли Uncaught (in promise) Error: Type mismatch. Value 1 does not match type string in column index 0

РЕДАКТИРОВАТЬ:

#region Total Hours Per Month

        var querythpmpro = (from r in db.HolidayRequestForms
                            where r.EmployeeID == id
                            group r by r.MonthOfHoliday into g
                            select new { Value = g.Key, Sum = g.Sum(h => h.HoursTaken) }
               ).OrderBy(e => e.Value);


        var resultthpmpro = querythpmpro.ToList();

        var datachartthpmpro = new object[resultthpmpro.Count];
        int Q = 0;
        foreach (var i in resultthpmpro)
        {
            datachartthpmpro[Q] = new object[] { i.Value, i.Sum};
            Q++;
        }
        string datathpmpro = JsonConvert.SerializeObject(datachartthpmpro, Formatting.None);
        ViewBag.datajthpmpro = new HtmlString(datathpmpro);

        #endregion

Модель:

   public partial class HolidayRequestForm
  {
     public int RequestID { get; set; }
     public int EmployeeID { get; set; }
     public System.DateTime StartDate { get; set; }
     public System.DateTime FinishDate { get; set; }
     public decimal HoursTaken { get; set; }
     public string Comments { get; set; }
     public int YearCreated { get; set; }
     public int MonthCreated { get; set; }
     public int DayCreated { get; set; }
     public Nullable<int> YearOfHoliday { get; set; }
     public Nullable<bool> Approved { get; set; }
     public string SubmittedBy { get; set; }
     public string ApprovedBy { get; set; }
     public Nullable<int> WorkWeek { get; set; }
     public Nullable<int> MonthOfHoliday { get; set; }

     public virtual Employee Employee { get; set; }
  }

Сценарий:

  function drawChartA() {

    // Create the data table.

    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Value');
    data.addColumn('number', 'Count');
    data.addRows(datassthpmpro);

    // Set chart options
    var options = {
        'title': 'Holiday Hours Taken Per Month',
        'width': 600,
        'height': 350,
        'hAxis': { title: 'Month Number' },
        'vAxis': { title: 'Holiday Hours Taken' },
        'is3D': true,
        'legend': 'none'
    };

1 Ответ

0 голосов
/ 15 марта 2019

Как насчет группировки по MonthOfHoliday и выполнения Sum на HoursTaken:

var querythpmpro = (from r in db.HolidayRequestForms
                     where r.EmployeeID == id
                     group r by r.MonthOfHoliday into g
                     select new { Value =  g.Key, Sum = g.Sum(h => h.HoursTaken) }
                   ).OrderBy(e => e.Value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...