Я бы хотел выполнить пару вызовов хранимых процедур 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;
}
Но я получаю следующую ошибку:
Код серьезности Описание Состояние подавления строки файла проекта
Ошибка 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 или ссылку на сборку?) CaseManagement .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
};
Спасибо
Alex