Entity Framework 6,DbContext.Database.SqlQuery<int> 没有提供转换为 ToList() 的选项

Entity Framework 6, DbContext.Database.SqlQuery<int> is not giving option to convert to ToList()

我正在使用 Entity Framework 6 通过 Database.SqlQuery<TElement> 方法执行存储过程,此方法不允许我将结果转换为 ToList()。它可以选择转换为 ToListAsync(),不知道为什么

using (var context = new UserAddressContext())
{
    var Id = new SqlParameter("@Id", 1);
    var count = new SqlParameter("@UserAddressCount", 0)
            {
                Direction = System.Data.ParameterDirection.Output
            };
    List<UserAddress> result= context.Database.SqlQuery<int>("GetUserAddressandCount @Id, @UserAddressCount OUT", Id, count).  --NOT GETTING OPTION AS "ToList()" 
}

任何帮助将不胜感激。

Database.SqlQuery返回的DbRawSqlQueryclass没有实现任何ToList()方法,所以不能直接将result转为列表。但它实现了 IEnumerable<T> 接口,因此您应该能够使用 IEnumerable<T>.

ToList() 扩展方法

我想,这个扩展方法不可用的原因是缺少 using 语句,它将扩展方法从 nemaspace 带到当前范围。

using System.Linq;