这个问题几乎与这个问题重复,只是答案已经有8年了,对我不起作用。还有这个,这个,还有这个。
我能找到的这个问题的每个答案都只是说添加
using Microsoft.EntityFrameworkCore;
(链接的第一个答案也指定了using System.Linq;
。)我已经通过nuget安装了Microsoft.EntityFrameworkCore
8.0.10以及Microsoft.EntityFrameworkCore.SqlServer
8.0.10,并添加了两个 using 语句。
为了确保没有任何其他
using
冲突,我什至尝试删除除指定的 2 个之外的所有 using 语句,但仍然找不到 Include。我还尝试了其他一些随机的,例如 Microsoft.Data.Sql
或 Microsoft.EntityFrameworkCore.SqlServer
。
我还尝试通过 nuget 重新安装这两个包,清理/重建解决方案,并多次重新启动 Visual Studio。
显然我也在使用.NET Core 8。
“IQueryable”不包含“Include”的定义,并且找不到接受“IQueryable”类型的第一个参数的可访问扩展方法“Include”(您是否缺少 using 指令或程序集引用?)
代码:
using Microsoft.EntityFrameworkCore;
using System.Linq;
IQueryable queryable = GetQueryableByTableName("table1");
queryable.Include("table2");
在 EF Core 8 中,不存在 Include 方法 的非泛型重载。因此,您需要让您的
IQueryable
成为某种通用类型的 IQueryable<>
。如果您不知道类型,您可以利用 dynamic
类型来确定并在运行时调用该方法的正确通用版本:
IQueryable queryable = GetQueryableByTableName("table1");
queryable = EntityFrameworkQueryableExtensions.Include((dynamic)queryable, "table2");