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()); }