我想使用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;
}