Пример #1
0
        public static void ResetValueGenerators(this DbContext context)
        {
            IValueGeneratorCache cache = context.GetService <IValueGeneratorCache>();

            foreach (IProperty keyProperty in context.Model.GetEntityTypes()
                     .Select(e => e.FindPrimaryKey().Properties[0])
                     .Where(p => p.ClrType == typeof(int) &&
                            p.ValueGenerated == ValueGenerated.OnAdd))
            {
                ResettableValueGenerator generator = (ResettableValueGenerator)cache.GetOrAdd(
                    keyProperty,
                    keyProperty.DeclaringEntityType,
                    (p, e) => new ResettableValueGenerator());

                generator.Reset();
            }
        }