查询返回错误:传递到ViewDataDictionary的模型项的类型为System.Runtime.CompilerServices.AsyncTaskMethodBuilder

时间:2019-05-12 19:29:42

标签: c# asp.net .net asp.net-mvc asp.net-core

我想使用sql查询获取记录:

public IList<Survey> GetSurveysAuditorByUserEmail(string email)
    {
        var surveys = new List<Survey>();
        try
        {
            using (SqlConnection db = new SqlConnection(_connStringAudit))
            {
                var idsSurveys = db.Query<string>("Select (CONVERT(nvarchar(450), Id_Rilievo) + Funzione) as IdRilievo From V_TrackingElencoUtentiRilievi Where Email = @email",
                  new { email });



                surveys = _context.Surveys.Where(o => idsSurveys.Contains(o.Id)).ToList();
            }
        }
        catch (Exception e)
        {
            var err = e.Message;
            _logger.Write(e.Message);
        }

        return surveys;
    }

在线var idsSurveys = db.Query<string>("Select (CONVERT(nvarchar(450), Id_Rilievo) + Funzione) as IdRilievo From V_TrackingElencoUtentiRilievi Where Email = @email", new { email });

我收到错误消息: InvalidOperationException:传递给ViewDataDictionary的模型项的类型为'System.Runtime.CompilerServices.AsyncTaskMethodBuilder 1+AsyncStateMachineBox 1 [System.Collections.Generic.List 1[System.Linq.IGrouping 2 [System.Int32,Tracking.Web.Models.Survey],Tracking.Web.Data.InterventionRepository + d__5]”,但是此ViewDataDictionary实例需要类型为“ System.Collections.Generic.List 1[System.Linq.IGrouping”的模型项2 [System.Int32,Tracking.Web.Models.Survey]]”。

我不明白为什么错误消息中包含有关InterventionRepository-> GroupSurveyByIntervId的文本。

这是方法GroupSurveyByIntervId。也许可以帮助您:

public async Task<List<IGrouping<int, Survey>>> GroupSurveyByIntervId(TrackingUser user)
    {
        IList<Survey> surveys = new List<Survey>();
        var statuses = _context.Statuses.ToList();
        //var surv = _context.Surveys.ToList();

        var userRoles = await _userManager.GetRolesAsync(user);

        foreach (var role in userRoles)
        {
            if (role == "Compliance")
            {
                surveys = _surveysService.GetSurveysComplainceByUserEmail(user.Email);
                break;
            }

            if (role == "Auditor")
            {
                surveys = _surveysService.GetSurveysAuditorByUserEmail(user.Email);
                break;
            }
        }

        var groupSurv = surveys.GroupBy(x => x.InterventionId).ToList();
        return groupSurv;
    }

0 个答案:

没有答案