【发布时间】:2019-09-22 06:58:30
【问题描述】:
我想将此 EF 代码转换为 SQL 命令:
var parents = db.Fuels.Select(A => A.Parent).Distinct();
var data = db.Fuels.Where(B => !parents.Any(A => A == B.ID))
.OrderBy(A => A.Type);
我尝试编写 SQL 命令,但它不起作用:
select *
from Fuel as a
where id not in (select id from Fuel as b
where a.ID = b.Parent)
表结构:
ID INT PK,
Name NVARCHAR(50) Checked,
Parent INT FK
表格数据
我想要这个输出
【问题讨论】:
-
您始终可以使用 SQL Profiler 或类似工具来查看 Entity Framework 正在生成的 SQL。
-
你能解释更多或写步骤吗?
-
假设您安装了 Server Management Studio,它安装了名为 SQL Server Profiler 的东西,可通过“工具”菜单访问。您将创建一个新会话,启动它运行,然后运行您的实体框架代码。探查器将捕获对目标数据库进行的任何查询,因此您可以看到 EF 为您的 LINQ 查询生成的 SQL。
标签: c# sql-server asp.net-mvc entity-framework linq