public async Task InsertMultipleObjectsWithCascade() { var TestObject = Canister.Builder.Bootstrapper.Resolve <ISession>(); await SetupDataAsync().ConfigureAwait(false); var Result1 = new MapPropertiesWithBaseClasses { BoolValue = false, MappedClass = new MapProperty1 { BaseValue1 = 1, ChildValue1 = 1 } }; var Result2 = new MapPropertiesWithBaseClasses { BoolValue = true, MappedClass = new MapProperty2 { BaseValue1 = 2, ChildValue2 = 2 } }; var Result3 = new MapPropertiesWithBaseClasses { BoolValue = false, MappedClass = new MapProperty1 { BaseValue1 = 3, ChildValue1 = 3 } }; await TestObject.Save(Result1, Result2, Result3).ExecuteAsync().ConfigureAwait(false); var Results = await TestObject.ExecuteAsync <MapPropertiesWithBaseClasses>("SELECT ID_ as [ID], BoolValue_ as [BoolValue] FROM MapPropertiesWithBaseClasses_", CommandType.Text, "Default").ConfigureAwait(false); Assert.Equal(6, Results.Count()); Assert.Contains(Results, x => x.ID == Result1.ID && !x.BoolValue && x.MappedClass.BaseValue1 == 1 && ((MapProperty1)x.MappedClass).ChildValue1 == 1); Assert.Contains(Results, x => x.ID == Result2.ID && x.BoolValue && x.MappedClass.BaseValue1 == 2 && ((MapProperty2)x.MappedClass).ChildValue2 == 2); Assert.Contains(Results, x => x.ID == Result3.ID && !x.BoolValue && x.MappedClass.BaseValue1 == 3 && ((MapProperty1)x.MappedClass).ChildValue1 == 3); }
private async Task SetupDataAsync() { var TestObject = new SchemaManager(MappingManager, Configuration, Logger, DataModeler, Sherlock, Helper); var Session = Canister.Builder.Bootstrapper.Resolve <ISession>(); await Helper .CreateBatch() .AddQuery(CommandType.Text, "DELETE FROM MapPropertiesWithBaseClasses_") .AddQuery(CommandType.Text, "DELETE FROM MapProperty1_") .ExecuteScalarAsync <int>().ConfigureAwait(false); var InitialData = new MapPropertiesWithBaseClasses[] { new MapPropertiesWithBaseClasses { BoolValue = true, MappedClass = new MapProperty1 { BaseValue1 = 1, ChildValue1 = 2 } }, new MapPropertiesWithBaseClasses { BoolValue = false, MappedClass = new MapProperty1 { BaseValue1 = 1, ChildValue1 = 2 } }, new MapPropertiesWithBaseClasses { BoolValue = true, MappedClass = new MapProperty1 { BaseValue1 = 1, ChildValue1 = 2 } }, }; await Session.Save(InitialData.Select(x => x.MappedClass).ToArray()).ExecuteAsync().ConfigureAwait(false); await Session.Save(InitialData).ExecuteAsync().ConfigureAwait(false); }