public void TestEfCoreLoggingWithMutipleDbContexts() { //SETUP List <LogOutput> logs1; var options1 = SqliteInMemory.CreateOptions <BookContext>(); using (var context = new BookContext(options1)) { //ATTEMPT logs1 = context.SetupLogging(); context.Database.EnsureCreated(); } var logs1Count = logs1.Count; var options2 = SqliteInMemory.CreateOptions <BookContext>(); using (var context = new BookContext(options2)) { //ATTEMPT var logs = context.SetupLogging(); context.Database.EnsureCreated(); //VERIFY logs.Count.ShouldBeInRange(1, 100); logs1.Count.ShouldNotEqual(logs1Count); //The second DbContext methods are also logged to the first logger } }
public void TestExample() { //SETUP var options = this .CreateUniqueClassOptions <BookContext>(); using (var context = new BookContext(options)) { context.CreateEmptyViaWipe(); var logs = context.SetupLogging(); //ATTEMPT context.Add(new Book { Title = "New Book" }); context.SaveChanges(); //VERIFY context.Books.Count().ShouldEqual(1); foreach (var log in logs.ToList()) { _output.WriteLine(log.ToString()); } } }
public void TestEfCoreLogging2() { //SETUP var options = SqliteInMemory.CreateOptions <BookContext>(); using (var context = new BookContext(options)) { //ATTEMPT var logs = context.SetupLogging(); context.Database.EnsureCreated(); //VERIFY logs.Count.ShouldBeInRange(11, 50); } }
public void TestEfCoreLogging1() { //SETUP var options = SqliteInMemory.CreateOptions <BookContext>(); using (var context = new BookContext(options)) { //ATTEMPT var logs = context.SetupLogging(); context.Database.EnsureCreated(); //VERIFY foreach (var log in logs.ToList()) //This stops the 'bleed' problem { _output.WriteLine(log.ToString()); } logs.Count.ShouldBeInRange(11, 50); } }
public void TestCreateDbToGetLogsOk() { //SETUP var options = this.CreateUniqueMethodOptions <BookContext>(); using (var context = new BookContext(options)) { //ATTEMPT var logs = context.SetupLogging(); context.Database.EnsureDeleted(); context.Database.EnsureCreated(); //VERIFY foreach (var log in logs.ToList()) { _output.WriteLine(log.ToString()); } } }
[RunnableInDebugOnly] //#A public void CaptureSqlEfCoreCreatesDatabase() { //SETUP var options = this. CreateUniqueClassOptions <BookContext>(); using (var context = new BookContext(options)) { var logs = context.SetupLogging(); //#B //ATTEMPT context.Database.EnsureDeleted(); //#C context.Database.EnsureCreated(); //#C //VERIFY foreach (var log in logs.ToList()) //This stops the 'bleed' problem { //#D _output.WriteLine(log.Message); //#D } //#D } }
public void TestLogQueryClientEvaluationWarning() { //SETUP var options = SqliteInMemory.CreateOptions <BookContext>(false); using (var context = new BookContext(options)) { context.Database.EnsureCreated(); var logs = context.SetupLogging(); //ATTEMPT var books = context.Books.Select(x => new ClientSeverTestDto { ClientSideProp = x.Price.ToString("C") }).OrderBy(x => x.ClientSideProp) .ToList(); //VERIFY logs.ToList().Any(x => x.EventId.Name == RelationalEventId.QueryClientEvaluationWarning.Name).ShouldBeTrue(); } }
public void TestEfCoreLoggingExample() { //SETUP var options = SqliteInMemory .CreateOptions <BookContext>(); using (var context = new BookContext(options)) { context.Database.EnsureCreated(); context.SeedDatabaseFourBooks(); var logs = context.SetupLogging(); //#C //ATTEMPT var books = context.Books.ToList(); //#D //VERIFY foreach (var log in logs.ToList()) //This stops the 'bleed' problem { //#E _output.WriteLine(log.ToString()); //#E } //#E } }
public void TestEfCoreLoggingStringWithBadValues() { //SETUP var options = SqliteInMemory.CreateOptions <BookContext>(); using (var context = new BookContext(options)) { context.Database.EnsureCreated(); //ATTEMPT var logs = context.SetupLogging(); context.Books.Count(); context.Add(new Book { Title = "The person's boss said, \"What's that about?\"" }); context.SaveChanges(); //VERIFY foreach (var log in logs.ToList()) //This stops the 'bleed' problem { _output.WriteLine(log.ToString()); } } }