#c# #asp.net #asp.net-mvc #asp.net-web-api
#c# #asp.net #asp.net-mvc #asp.net-web-api
Вопрос:
У меня есть следующее:
var sql = @"Select
case when Test.TestTypeId = 1 then Exam.Name
when Test.TestTypeId = 2 then Topic.Name
end as Name,
Test.Title,
Test.TestId,
Test.QuestionsCount
FROM Test
LEFT JOIN Exam ON Test.ExamId = Exam.ExamId
LEFT JOIN Topic ON Test.TopicId = Topic.TopicId
WHERE Test.TestStatusId = 1 -- Current";
var tests = db.Database.SqlQuery<TestDTO>(sql).ToList();
Я искал для этого асинхронный метод, но, похоже, его не существует. Есть ли способ, которым я могу запустить это асинхронно?
Ответ №1:
Если вы используете Entity Framework 6, вам просто нужно указать
using System.Data.Entity;
в верхней части вашего файла.
ToListAsync
является ли метод расширения IQueryable<T>
объявленным в System.Data.Entity.QueryableExtensions
Комментарии:
1. Как вы сказали,
ToListAsync
это только toIQueryable
,SqlQuery
возвращаетIEnumerable<T>
2. @JeanCarlos Нет, он возвращает
DbRawSqlQuery<T>
, который реализуетIDbAsyncEnumerable<T>
, а также такие методы, какToListAsync<T>
напрямую.