-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Open
Labels
Milestone
Description
For the query below, ToQueryString returns
SELECT [c].[Id]
FROM [Chunky] AS [c]
ORDER BY [c].[Id]I would expect it to show all three queries that eventually get logged:
SELECT [c].[Id]
FROM [Chunky] AS [c]
ORDER BY [c].[Id]
SELECT [c0].[Id], [c0].[ChunkyId], [c].[Id]
FROM [Chunky] AS [c]
INNER JOIN [Cherry] AS [c0] ON [c].[Id] = [c0].[ChunkyId]
ORDER BY [c].[Id], [c0].[Id]
SELECT [m].[Id], [m].[CherryId], [c].[Id], [c0].[Id]
FROM [Chunky] AS [c]
INNER JOIN [Cherry] AS [c0] ON [c].[Id] = [c0].[ChunkyId]
INNER JOIN [Monkey] AS [m] ON [c0].[Id] = [m].[CherryId]
ORDER BY [c].[Id], [c0].[Id]Code:
public class SomeDbContext : DbContext
{
private static readonly ILoggerFactory
Logger = LoggerFactory.Create(x => x.AddConsole());//.SetMinimumLevel(LogLevel.Debug));
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Chunky>();
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder
.UseLoggerFactory(Logger)
.EnableSensitiveDataLogging()
.UseSqlServer(Your.SqlServerConnectionString);
}
public static class Program
{
public static void Main()
{
using (var context = new SomeDbContext())
{
context.Database.EnsureDeleted();
context.Database.EnsureCreated();
context.Add(new Chunky
{
Cherries = new List<Cherry>
{
new Cherry
{
Monkeys = new List<Monkey> {new Monkey()}
}
}
});
context.SaveChanges();
}
using (var context = new SomeDbContext())
{
var queryable = context.Set<Chunky>().Include(e => e.Cherries).ThenInclude(e => e.Monkeys).AsSplitQuery();
Console.WriteLine(queryable.ToQueryString());
queryable.ToList();
}
}
}
public class Chunky
{
public int Id { get; set; }
public ICollection<Cherry> Cherries { get; set; }
}
public class Cherry
{
public int Id { get; set; }
public ICollection<Monkey> Monkeys { get; set; }
}
public class Monkey
{
public int Id { get; set; }
}ErroneousFatality, DenisJNewb, Suchiman, domagojmedo, alexzaugarov and 3 more