using System; using System.Linq; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; await using var connection = new SqliteConnection("Data Source=:memory:;Foreign Keys=True"); await connection.OpenAsync(); var options = new DbContextOptionsBuilder().UseSqlite(connection).Options; await using (var write = new LabDb(options)) { await write.Database.EnsureCreatedAsync(); write.Items.Add(new Item { Name = "rune" }); await write.SaveChangesAsync(); } await using (var read = new LabDb(options)) { var item = await read.Items.AsNoTracking().SingleAsync(); Check(item.Name == "rune", "fresh context sees saved row"); Console.WriteLine("saved:" + item.Name); } static void Check(bool condition, string name) { if (!condition) throw new InvalidOperationException("CHECK: " + name); }