Esempio n. 1
0
        private string getEntityConfiurationContent(TableInfo table, List <ColumnInfo> columns, List <ForeignKeyInfo> baseForeignKeys, All all)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine($"\t\t\tbuilder.ToTable(\"{table.Name}\");");

            if (columns.Any(r => r.IsPrimaryKey))
            {
                var keys = columns.Where(r => r.IsPrimaryKey).Select(r => "r." + r.Name).Join(" ,");
                sb.AppendLine($"\t\t\tbuilder.HasKey(r => new {{ { keys } }});");
            }

            foreach (var item in columns)
            {
                if (item.IsIdentity)
                {
                    sb.AppendLine($"\t\t\tbuilder.Property(r => r.{item.Name}).ValueGeneratedOnAdd();");
                }

                var csType = mapper.GetCsharpType(item.ColumnDbType);
                if (csType?.TypeString?.EqualsIgnoreCase("string") == true)
                {
                    sb.AppendLine($"\t\t\tbuilder.Property(r => r.{item.Name}).{(item.Length.HasValue ? $"HasMaxLength({item.Length})" : "")}.IsRequired({(item.Nullable ? "false" : "true")});");
                }
                else if (csType?.IsValueType == false)
                {
                    sb.AppendLine($"\t\t\tbuilder.Property(r => r.{item.Name}).IsRequired({(item.Nullable ? "false" : "true")});");
                }
            }

            foreach (var item in baseForeignKeys)
            {
                sb.AppendLine($"\t\t\tbuilder.HasOne(r => r.{item.BasePropertyName(all)}).WithMany().HasForeignKey(r => r.{item.BaseColumnName});");
            }

            return(sb.ToString());
        }