public async Task TestReadAndWrite() { var factory = EntityFramework.DefaultFactory <EfCoreTestContext>( new DbContextOptionsBuilder <EfCoreTestContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .ConfigureWarnings(x => x.Ignore(InMemoryEventId.TransactionIgnoredWarning)) .Options, options => new EfCoreTestContext(options)); var logger = new LoggerFactory().CreateLogger <DefaultDbContext <EfCoreTestContext> >(); var context = new DefaultDbContext <EfCoreTestContext>(logger, factory); var id = 1; var added = await context.Write(async db => { var result = await db.AddAsync(new Person { BusinessEntityId = id, FirstName = "Bob" }); return(result.Entity); }); Assert.Equal("Bob", added.FirstName); var read = await context.Read(async db => await db.FindAsync <Person>(id)); Assert.Equal("Bob", read.FirstName); }