public async System.Threading.Tasks.Task WithBidiOneToOneAsync() { using (ISession session = OpenSession()) using (var trx = session.BeginTransaction()) { var worker = new PersonO2O(); var homestay = new PersonO2O(); var home = new AddressO2O(); var office = new AddressO2O(); home.SetPerson(homestay); office.SetPerson(worker); await(session.SaveAsync(home)); await(session.SaveAsync(office)); Assert.DoesNotThrowAsync(() => { return(trx.CommitAsync()); }); } // 2 Person inserts, 2 Address inserts, 2 Person updates (because mapped through foreign key) Assert.AreEqual(3, StatsBatcher.BatchSizes.Count, "Unexpected batches count"); Assert.AreEqual(6, StatsBatcher.BatchSizes.Sum(), "Unexpected batched queries count"); }
public virtual void SetPerson(PersonO2O person) { Person = person; person.Address = this; }