protected virtual void GenerateEntityType(
            [NotNull] string variable,
            [NotNull] IEntityType entityType,
            [NotNull] IndentedStringBuilder stringBuilder,
            GenerateEntityTypeOptions options)
        {
            Check.NotEmpty(variable, nameof(variable));
            Check.NotNull(entityType, nameof(entityType));
            Check.NotNull(stringBuilder, nameof(stringBuilder));

            stringBuilder
            .Append(variable)
            .Append(".Entity(")
            .Append(_code.Literal(entityType.Name))
            .AppendLine(", b =>");

            using (stringBuilder.Indent())
            {
                stringBuilder.Append("{");

                using (stringBuilder.Indent())
                {
                    if ((options & GenerateEntityTypeOptions.Declared) != 0)
                    {
                        GenerateBaseType(entityType.BaseType, stringBuilder);

                        GenerateProperties(entityType.GetDeclaredProperties(), stringBuilder);

                        GenerateKeys(entityType.GetDeclaredKeys(), entityType.FindDeclaredPrimaryKey(), stringBuilder);

                        GenerateIndexes(entityType.GetDeclaredIndexes(), stringBuilder);
                    }

                    if ((options & GenerateEntityTypeOptions.Relationships) != 0)
                    {
                        GenerateForeignKeys(entityType.GetDeclaredForeignKeys(), stringBuilder);
                    }

                    if ((options & GenerateEntityTypeOptions.Declared) != 0)
                    {
                        GenerateEntityTypeAnnotations(entityType, stringBuilder);
                    }
                }

                stringBuilder
                .AppendLine()
                .AppendLine("});");
            }
        }
        protected virtual void GenerateEntityType(
            [NotNull] IEntityType entityType, [NotNull] IndentedStringBuilder stringBuilder, GenerateEntityTypeOptions options)
        {
            Check.NotNull(entityType, nameof(entityType));
            Check.NotNull(stringBuilder, nameof(stringBuilder));

            stringBuilder
                .Append("builder.Entity(")
                .Append(_code.Literal(entityType.Name))
                .AppendLine(", b =>");

            using (stringBuilder.Indent())
            {
                stringBuilder.Append("{");

                using (stringBuilder.Indent())
                {
                    if ((options & GenerateEntityTypeOptions.Primary) != 0)
                    {
                        GenerateProperties(entityType.GetProperties(), stringBuilder);

                        GenerateKey(entityType.GetPrimaryKey(), stringBuilder);

                        GenerateIndexes(entityType.GetIndexes(), stringBuilder);
                    }

                    if ((options & GenerateEntityTypeOptions.Secondary) != 0)
                    {
                        GenerateForeignKeys(entityType.GetForeignKeys(), stringBuilder);
                    }

                    if ((options & GenerateEntityTypeOptions.Primary) != 0)
                    {
                        GenerateEntityTypeAnnotations(entityType, stringBuilder);
                    }
                }

                stringBuilder
                    .AppendLine()
                    .AppendLine("});");
            }
        }
        protected virtual void GenerateEntityType(
            [NotNull] IEntityType entityType, [NotNull] IndentedStringBuilder stringBuilder, GenerateEntityTypeOptions options)
        {
            Check.NotNull(entityType, nameof(entityType));
            Check.NotNull(stringBuilder, nameof(stringBuilder));

            if ((options & GenerateEntityTypeOptions.BaseType) != 0)
            {
                stringBuilder
                    .Append("builder.Entity(")
                    .Append(_code.Literal(entityType.Name))
                    .AppendLine(")");

                using (stringBuilder.Indent())
                {
                    stringBuilder.Append(".BaseType(")
                        .Append(_code.Literal(entityType.BaseType.Name))
                        .AppendLine(");");
                }

                return;

            }

            stringBuilder
                .Append("builder.Entity(")
                .Append(_code.Literal(entityType.Name))
                .AppendLine(", b =>");

            using (stringBuilder.Indent())
            {
                stringBuilder.Append("{");

                using (stringBuilder.Indent())
                {
                    if ((options & GenerateEntityTypeOptions.Declared) != 0)
                    {
                        GenerateProperties(entityType.GetDeclaredProperties(), stringBuilder);

                        GenerateKey(entityType.FindDeclaredPrimaryKey(), stringBuilder);

                        GenerateIndexes(entityType.GetDeclaredIndexes(), stringBuilder);
                    }

                    if ((options & GenerateEntityTypeOptions.Relationships) != 0)
                    {
                        GenerateForeignKeys(entityType.GetDeclaredForeignKeys(), stringBuilder);
                    }

                    if ((options & GenerateEntityTypeOptions.Declared) != 0)
                    {
                        GenerateEntityTypeAnnotations(entityType, stringBuilder);
                    }
                }

                stringBuilder
                    .AppendLine()
                    .AppendLine("});");
            }
        }
Exemplo n.º 4
0
        protected virtual void GenerateEntityType(
            [NotNull] IEntityType entityType, [NotNull] IndentedStringBuilder stringBuilder, GenerateEntityTypeOptions options)
        {
            Check.NotNull(entityType, "entityType");
            Check.NotNull(stringBuilder, "stringBuilder");

            stringBuilder
            .Append("builder.Entity(")
            .Append(DelimitString(entityType.Name))
            .AppendLine(", b =>");

            using (stringBuilder.Indent())
            {
                stringBuilder.Append("{");

                using (stringBuilder.Indent())
                {
                    if ((options & GenerateEntityTypeOptions.Primary) != 0)
                    {
                        GenerateProperties(entityType.Properties, stringBuilder);

                        GenerateKey(entityType.GetPrimaryKey(), stringBuilder);
                    }

                    if ((options & GenerateEntityTypeOptions.Secondary) != 0)
                    {
                        GenerateForeignKeys(entityType.ForeignKeys, stringBuilder);
                    }

                    if ((options & GenerateEntityTypeOptions.Primary) != 0)
                    {
                        GenerateEntityTypeAnnotations(entityType, stringBuilder);
                    }
                }

                stringBuilder
                .AppendLine()
                .AppendLine("});");
            }
        }