我想并行地执行两个SELECT存储过程调用。我将我的上下文设置如下:
public virtual DbSet<Task<GetCaseCaseContextModel>> CaseGetCaseContextData { get; set; }然后,我的回购课做了以下工作:
public async Task<List<GetCaseNotesContextModel>> GetCaseNotes(string caseId)
{
var notes = _context.CaseGetCaseContextData.FromSql("x_Fortellis_CaseGetCaseNotes @p0", caseId, caseId).ToListAsync();
return notes;
}但我得到了以下错误:
严重性代码描述项目文件行抑制状态错误'System.Threading.Tasks.Task>>‘不能隐式转换类型为'System.Collections.Generic.List’CaseManagement.Infrastructure.Database C:\Dev\Bitbucket\webscv\Fortellis\CaseManagement\CaseManagement.Infrustructure.Database\Repo\Case\GetCase\GetCaseRepoHelper.cs 72活动
当我将上下文更改为:
public virtual Task<DbSet<GetCaseCaseContextModel>> CaseGetCaseContextData { get; set; }我得到以下错误:
严重性代码描述项目文件行抑制状态错误CS1061 'Task‘不包含'FromSql’的定义,并且无法找到接受'Task‘类型的第一个参数的可访问扩展方法'FromSql’(您是缺少一个使用指令还是程序集引用?)C:\Dev\Bitbucket\webscv\Fortellis\CaseManagement\CaseManagement.Infrustructure.Database\Repo\Case\GetCase\GetCaseRepoHelper.cs 70活性CaseManagement.Infrastructure.Database
我最终想用以下方法来称呼他们:
GetCaseCaseContextModel caseData = new GetCaseCaseContextModel();
List<GetCaseNotesContextModel> notes = new List<GetCaseNotesContextModel>();
Parallel.Invoke(
async () => caseData = await GetCaseData(caseId, dealerGroupId),
async () => notes = await GetCaseNotes(caseId)
);
return new GetCaseContextModel()
{
CaseData = caseData,
Notes = notes
};谢谢亚历克斯
发布于 2019-05-21 15:35:18
你必须重写:
public async Task<List<GetCaseNotesContextModel>> GetCaseNotes(string caseId)
{
var notes = await _context.CaseGetCaseContextData.FromSql("x_Fortellis_CaseGetCaseNotes @p0", caseId, caseId).ToListAsync();
return notes;
}放置await
https://stackoverflow.com/questions/55267883
复制相似问题