【发布时间】:2019-04-28 07:08:37
【问题描述】:
我一直在尝试将在我的应用程序中经常执行的查询转换为已编译的查询,但没有成功。我将其归结为一个简单的查询,因此得出的结论是我一定误解了某些东西的工作原理。
这是不使用编译查询的简单示例查询(可行):
private static Func<Entities, int, string, IQueryable<Users>> _getUsers =
(Entities context) =>
from au in context.Users select au;
一旦我添加了编译查询调用:
private static Func<Entities, int, string, IQueryable<Users>> _getUsers =
EF.CompileQuery((Entities context) =>
from au in context.Users select au);
我得到了这个例外:
无法将类型“System.Func>”隐式转换为“System.Func>”。存在显式转换(您是否缺少演员表?)
对于我的一生,我无法弄清楚我做错了什么......有什么建议吗?
【问题讨论】:
-
编译意味着创建 SQL 查询并重用它。将 more LINQ 运算符应用于该查询将意味着 重新编译它。
标签: linq iqueryable ef-core-2.1