我想并行执行几个SELECT存储过程调用。 我将上下文设置如下:
public virtual DbSet<Task<GetCaseCaseContextModel>> CaseGetCaseContextData { get; set; }
然后,我的repo类执行以下操作:
public async Task<List<GetCaseNotesContextModel>> GetCaseNotes(string caseId)
{
var notes = _context.CaseGetCaseContextData.FromSql("x_Fortellis_CaseGetCaseNotes @p0", caseId, caseId).ToListAsync();
return notes;
}
但是出现以下错误:
严重性代码描述项目文件行抑制状态 错误CS0029无法将类型'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'任务>'不包含'FromSql'的定义,并且找不到可以接受的扩展方法'FromSql'接受类型为'任务>'的第一个参数(您是否缺少using指令或程序集引用?) .Infrastructure.Database C:\ Dev \ Bitbucket \ webscv \ Fortellis \ CaseManagement \ CaseManagement.Infrustructure.Database \ Repo \ Case \ GetCase \ GetCaseRepoHelper.cs 70有效
我最终想使用以下方式致电给他们
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
};
谢谢 亚历克斯
答案 0 :(得分:0)
您必须重写:
public async Task<List<GetCaseNotesContextModel>> GetCaseNotes(string caseId)
{
var notes = await _context.CaseGetCaseContextData.FromSql("x_Fortellis_CaseGetCaseNotes @p0", caseId, caseId).ToListAsync();
return notes;
}
等待