我有这段代码,但我不知道我的代码有什么问题。 我有 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;
}
}
}
我不太确定,但也许你可以使用下面的扩展方法
public static class SampleExtension
{
public static async Task<List<T>> ToListAsync<T> (this IQueryable<T> obj) => await Task.Run(() => obj.ToList());
}
不需要
AsQueryable
,这段代码应该可以工作:
using (MyDB db = new MyDB())
{
lstSegmentos = await (from item in db.genAfiliados
select item).ToListAsync();
}
我的存储库层也有同样的问题。我缺少以下
using
指令:
using Microsoft.EntityFrameworkCore;
使用这个,你的
ToListAsync()
应该可以正常工作。