36

I have the following:

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();

I was looking for an async method for this but it does not seem to exist. Is there a way that I can run this async?

0

1 Answer 1

56

If you're using Entity Framework 6 you just need to specify

using System.Data.Entity;

at the top of your file.

ToListAsync is an extension method on IQueryable<T> declared in System.Data.Entity.QueryableExtensions

Sign up to request clarification or add additional context in comments.

2 Comments

As you said, ToListAsync is only to IQueryable, SqlQuery returns IEnumerable<T>
@JeanCarlos No, it returns DbRawSqlQuery<T>, which implements IDbAsyncEnumerable<T> as well as methods such as ToListAsync<T> directly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.