Example #1
0
        public static async Task BulkInsertCascade <T>(this IContextAdapter contextAdapter, IList <T> forSave,
                                                       params ICascade <T>[] cascades) where T : class
        {
            if (forSave == null || !forSave.Any())
            {
                return;
            }

            foreach (var cascade in cascades.Where(o => o.IsCascadeBeforeInsert))
            {
                await cascade.InnerInsert(forSave, contextAdapter);
            }

            await contextAdapter.BulkInsertWithIdGeneration(forSave);

            foreach (var cascade in cascades.Where(o => !o.IsCascadeBeforeInsert))
            {
                await cascade.InnerInsert(forSave, contextAdapter);
            }
        }