我不知道如何将这段linq代码转换为普通的SQL查询。我知道第一部分,我需要做一个内部连接,但我不知道确切的位置。
这个linq查询在SQL查询中是什么样子的?
context.DataTable.FirstOrDefault(x => x.ID == ID).Roles.SelectMany(x => x.RoleToExtensions.Select(y => y.Extension)).ToList();
发布于 2019-09-16 20:56:13
在您的DbContext类中添加以下代码并运行该代码。查询将显示在Visual Studio的输出窗口中。(需要安装nuget包Microsoft.Extensions.Logging和Microsoft.Extensions.Logging.Console,并添加各自的命名空间)
public static readonly LoggerFactory MyLoggerFactory
= new LoggerFactory(new[] { new ConsoleLoggerProvider((_, __) => true, true) });
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
#if DEBUG
optionsBuilder
.UseLoggerFactory(MyLoggerFactory)
.EnableSensitiveDataLogging();
#endif
}
或者,如果您只需要一个简单的LINQ查询sql:
SELECT re.Extension FROM roletoextension re
WHERE re.RoleId IN
(SELECT RoleId FROM Role r
WHERE r.DataTableId = {ID})
https://stackoverflow.com/questions/57952387
复制相似问题