예제 #1
0
        private void SetAutoGeneratedFields <T>(
            IEnumerable <T> entities,
            EntityInfo infos,
            NpgsqlBulkCodeBuilder <T> codeBuilders)
        {
            if (infos.PropertyNameToGenerators == null || infos.PropertyNameToGenerators.Count == 0)
            {
                return;
            }

#pragma warning disable EF1001 // Internal EF Core API usage.
            var sm = ((IDbContextDependencies)context).StateManager;
#pragma warning restore EF1001 // Internal EF Core API usage.

            foreach (var item in entities)
            {
#pragma warning disable EF1001 // Internal EF Core API usage.
                var entry = sm.TryGetEntry(item);
#pragma warning restore EF1001 // Internal EF Core API usage.
                if (entry == null)
                {
#pragma warning disable EF1001 // Internal EF Core API usage.
                    entry = sm.GetOrCreateEntry(item);
#pragma warning restore EF1001 // Internal EF Core API usage.

                    codeBuilders.AutoGenerateValues(
#pragma warning disable EF1001 // Internal EF Core API usage.
                        item, new Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry(entry), infos.PropertyNameToGenerators);
#pragma warning restore EF1001 // Internal EF Core API usage.
                }
            }
        }
예제 #2
0
        private void SetAutoGeneratedFields<T>(
            IEnumerable<T> entities,
            EntityInfo infos,
            NpgsqlBulkCodeBuilder<T> codeBuilders)
        {
            if (infos.PropertyNameToGenerators == null || infos.PropertyNameToGenerators.Count == 0)
                return;

            var sm = ((IDbContextDependencies)context).StateManager;

            foreach (var item in entities)
            {
                var entry = sm.TryGetEntry(item);
                if (entry == null)
                {
                    entry = sm.GetOrCreateEntry(item);

                    codeBuilders.AutoGenerateValues(
                        item, new Microsoft.EntityFrameworkCore.ChangeTracking.EntityEntry(entry), infos.PropertyNameToGenerators);
                }
            }
        }