Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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#linq与selectMany to sql语句_Sql_Entity Framework_Linq - Fatal编程技术网

c#linq与selectMany to sql语句

c#linq与selectMany to sql语句,sql,entity-framework,linq,Sql,Entity Framework,Linq,我不知道如何将此linq代码转换为普通SQL查询。我知道第一部分,我需要做一个内部连接,但我不知道具体在哪里 这个linq查询在SQL查询中是什么样子的 context.DataTable.FirstOrDefault(x => x.ID == ID).Roles.SelectMany(x => x.RoleToExtensions.Select(y => y.Extension)).ToList(); 在DbContext类中添加以下代码并运行代码。查询将显示在Visual

我不知道如何将此linq代码转换为普通SQL查询。我知道第一部分,我需要做一个内部连接,但我不知道具体在哪里

这个linq查询在SQL查询中是什么样子的

context.DataTable.FirstOrDefault(x => x.ID == ID).Roles.SelectMany(x => x.RoleToExtensions.Select(y => y.Extension)).ToList();

在DbContext类中添加以下代码并运行代码。查询将显示在VisualStudio的输出窗口中。 (需要安装nuget软件包Microsoft.Extensions.Logging和Microsoft.Extensions.Logging.Console,并添加相应的命名空间)

或者,如果您只需要LINQ查询的简单sql:

SELECT re.Extension FROM roletoextension re 
WHERE re.RoleId IN 
(SELECT RoleId FROM Role r 
WHERE r.DataTableId = {ID})

为什么
node.js
与这个问题相关?似乎这只是SQL和LINQ的问题。哦,是的,你说得对。我只需要查询nodejs程序,本能地添加了一个nodejs标记。您可以显示带有相关列的类模型或SQL表吗?例如,将DataTable与角色和角色与扩展关联的键?
SELECT re.Extension FROM roletoextension re 
WHERE re.RoleId IN 
(SELECT RoleId FROM Role r 
WHERE r.DataTableId = {ID})