Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC核心和实体框架中的ToListSync不工作_C#_Asp.net Mvc_Entity Framework_Asp.net Core Mvc - Fatal编程技术网

C# ASP.NET MVC核心和实体框架中的ToListSync不工作

C# ASP.NET MVC核心和实体框架中的ToListSync不工作,c#,asp.net-mvc,entity-framework,asp.net-core-mvc,C#,Asp.net Mvc,Entity Framework,Asp.net Core Mvc,我在ASP.NET MVC Core and Entity Framework中有以下代码,在执行ToListSync时出现以下错误 其他信息:源IQueryable未实现 可枚举的。唯一来源 实现IDBSyncEnumerable可用于实体框架 异步操作。有关更多详细信息,请参阅 这是我的代码: var states = mDbContext.State.ToListAsync(); var countries = mDbContext.Country.ToListAsync(); mMe

我在ASP.NET MVC Core and Entity Framework中有以下代码,在执行
ToListSync
时出现以下错误

其他信息:源IQueryable未实现 可枚举的。唯一来源 实现IDBSyncEnumerable可用于实体框架 异步操作。有关更多详细信息,请参阅

这是我的代码:

var states = mDbContext.State.ToListAsync();
var countries = mDbContext.Country.ToListAsync();

mMemoryCache.Set(Countries, await countries,
    new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.MaxValue));
mMemoryCache.Set(States, await states,
   new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.MaxValue));
我的上下文类从
DbContext
扩展而来,我使用了ef6

public virtual DbSet<Country> Country { get; set; }

public virtual DbSet<State> State { get; set; }
公共虚拟数据库集国家{get;set;}
公共虚拟数据库集状态{get;set;}

你知道为什么我在安装了所有东西之后仍然不能执行
ToListAsync()
吗?

ToListAsync()
System.Data.Entity
Microsoft.EntityFrameworkCore
中都有定义。如果同时导入这两个错误,它将默认为生成上述错误的System.Data.Entity中的定义。删除
System.Data.Entity
并添加尝试使用
Microsoft.EntityFrameworkCore
添加

EF6!=EF核心。它们的功能在某种程度上相似,但不兼容

ToListSync是EF的核心功能,您正试图在EF6 DbContext上使用它


这就是它不起作用的原因。如果您想使用此功能,您必须使用EF Core DbContext,但是您可能在代码的其他地方使用仅EF6的功能,而这些功能将停止工作。

您的代码是否真的
公共虚拟数据库集状态{get;set;}
?是的,在从DbContext继承的上下文类中。您使用的是哪个数据库?可能是MySQL?不,MS SQL server1)您在project.json中使用的是哪个.net框架?2) 是否添加了
System.Data.Entity在您的控制器/类中?这应该是一个注释,因为它既没有回答问题,也没有解释为什么这会有帮助。具有讽刺意味的是,它在一个不相关的问题上帮助了我+1此答案也为我解决了完全相同的“IQueryable未实现IDbAsyncEnumerable”错误。我希望微软能更聪明地组织他们的库,或者至少在添加EfCore后创建更多有用的错误消息。这有助于我将ASP.NET 4.5项目转换为.NET Core 3.0