EF5 IQueryable 不包含 ToListAsync 的定义

问题描述 投票:0回答:3

我有这段代码,但我不知道我的代码有什么问题。 我有 EF 5,我想制作一个任务等待方法。

我想做的是以异步方式选择查询一个简单的表。 但是 ToListAsync() 方法似乎不在我的 EF 中。

我怎么解决这个问题?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EO;
using System.Data.Objects;
using System.Data.Objects.SqlClient;
using System.Transactions;
using System.Threading;
using System.Data.Entity;

namespace DimexCEDatos
{
    static public class AfiliadosDatos
    {
        static List<myclass> lstSegmentos = new List<myclass>();

        public static async Task<List<myclass>> myfunction()
        {
            try
            {
                using (MyDB db = new MyDB())
                {
                    lstSegmentos = await (from item in db.genAfiliados
                                          select item).AsQueryable().ToListAsync();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return lstSegmentos;
        }
    }
}
c# asp.net-mvc vb.net visual-studio entity-framework
3个回答
0
投票

我不太确定,但也许你可以使用下面的扩展方法

public static class SampleExtension
{
    public static async Task<List<T>> ToListAsync<T> (this IQueryable<T> obj) => await Task.Run(() => obj.ToList());
}

0
投票

不需要

AsQueryable
,这段代码应该可以工作:

using (MyDB db = new MyDB())
{
    lstSegmentos = await (from item in db.genAfiliados
                          select item).ToListAsync();
}

0
投票

我的存储库层也有同样的问题。我缺少以下

using
指令:

using Microsoft.EntityFrameworkCore;

使用这个,你的

ToListAsync()
应该可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.