在使用了多年的webforms之后,我现在进入了Razor Pages。
我有以下代码从SQL Server存储过程中检索数据:
private readonly AppDbContext context;
public List<DeviationRequests> DeviationDetails { get; set; }
public async Task<DeviationRequests> GetDeviationDetailsAsync(int id)
{
//return await context.apiDeviationRequests.FirstOrDefaultAsync(p => p.DeviationLogID == id);
var parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("@SUB_ID", "5317DBA3"));
parameters.Add(new SqlParameter("@DeviationLogID", id));
DeviationDetails = await context.apiDeviationRequests.FromSqlRaw<DeviationRequests>("dbo.Get_WorkStationDeviationDetails @Sub_ID, @DeviationLogID", parameters: parameters.ToArray()).ToListAsync();
return DeviationDetails;
}
起初,它只是使用linq检索表数据来进行测试,但我需要将其转换为使用存储过程。我已经注释了linq表检索。
不幸的是,通过存储过程获取数据的新代码在
上产生了一个错误:return DeviationDetails;
错误是:
请问我做错了什么?不能隐式转换类型system.collections.generic.list
CV2.Models.DeviationRequests。
试试这个:
public async Task<DeviationRequests> GetDeviationDetailsAsync(int id)
{
//return await context.apiDeviationRequests.FirstOrDefaultAsync(p => p.DeviationLogID == id);
var parameters = new List<SqlParameter>();
parameters.Add(new SqlParameter("@SUB_ID", "5317DBA3"));
parameters.Add(new SqlParameter("@DeviationLogID", id));
DeviationDetails = await context.apiDeviationRequests.FromSqlRaw<DeviationRequests>("dbo.Get_WorkStationDeviationDetails @Sub_ID, @DeviationLogID", parameters: parameters.ToArray()).ToListAsync();
return DeviationDetails.FirstOrDefault();
}