using Microsoft.Data.Sqlite;
using Microsoft.EntityFrameworkCore;
using System.Threading.Tasks;
public static async Task Main()
using ( var connection = new SqliteConnection("DataSource=:memory:") )
var options = new DbContextOptionsBuilder<MyDbContext>()
using ( var db = new MyDbContext(options) )
await db.Database.EnsureCreatedAsync();
using ( var db = new MyDbContext(options) )
await db.SaveChangesAsync();
using ( var db = new MyDbContext(options) )
await db.SaveChangesAsync();
using ( var db = new MyDbContext(options) )
var dog = db.Dogs.Find(1);
await db.SaveChangesAsync();
using ( var db = new MyDbContext(options) )
await db.SaveChangesAsync();
public int Id { get; set; }
public string Name { get; set; }
public int? DogId { get; set; }
public Dog Dog { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public class MyDbContext : DbContext
public MyDbContext(DbContextOptions<MyDbContext> options) : base(options)
public DbSet<Person> Persons { get; set; }
public DbSet<Dog> Dogs { get; set; }