示例#1
0
        /// <summary>
        ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
        ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
        ///     any release. You should only use it directly in your code with extreme caution and knowing that
        ///     doing so can result in application failures when updating to a new Entity Framework Core release.
        /// </summary>
        public override InternalEntityTypeBuilder Apply(InternalEntityTypeBuilder entityTypeBuilder, TableAttribute attribute)
        {
            if (!string.IsNullOrWhiteSpace(attribute.Schema))
            {
                entityTypeBuilder.ToTable(attribute.Name, attribute.Schema, fromDataAnnotation: true);
            }

            if (!string.IsNullOrWhiteSpace(attribute.Name))
            {
                entityTypeBuilder.ToTable(attribute.Name, fromDataAnnotation: true);
            }

            return(entityTypeBuilder);
        }
        /// <summary>
        ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
        ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
        ///     any release. You should only use it directly in your code with extreme caution and knowing that
        ///     doing so can result in application failures when updating to a new Entity Framework Core release.
        /// </summary>
        public virtual bool Apply(InternalEntityTypeBuilder entityTypeBuilder, EntityType oldBaseType)
        {
            if (_sets != null)
            {
                var entityType = entityTypeBuilder.Metadata;

                if (oldBaseType == null &&
                    entityType.BaseType != null)
                {
                    entityTypeBuilder.ToTable(null);
                }
                else if (oldBaseType != null &&
                         entityType.BaseType == null &&
                         _sets.ContainsKey(entityType.ClrType))
                {
                    entityTypeBuilder.ToTable(_sets[entityType.ClrType].Name);
                }
            }

            return(true);
        }